1.(回文素数)回文素数是指一个数既是素数又是回文数。例如,131既是素数也是回文数。数字313和717都是如此。编写程序显示前100个回文素数。每行显示10个数字,并且准确对齐,如下所示。
2 3 5 7 11 101 131 151 181 191
313 353 373 383 727 757 787 797 919 929
python代码实现:
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def is_palindrome(num):
return str(num) == str(num)[::-1]
count = 0
num = 2
while count < 100:
if is_prime(num) and is_palindrome(num):
print(f"{num:7}", end=" ")
count += 1
if count % 10 == 0:
print()
num += 1
测试结果显示:
2.(反素数)(逆向拼写的素数)是指一个将逆向拼写后也是一个素数的非回文数。例如:17和71都是素数,所以,17和71都是反素数。编写程序显示 前100个反素数。每行显示10个数字,并且准确对齐,如下所示。
13 17 31 37 71 73 79 97 107 113
149 157 167 179 199 311 337 347 359 389
python代码实现:
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def is_antipalindrome(num):
return not str(num) == str(num)[::-1] and is_prime(int(str(num)[::-1]))
count = 0
num = 10
while count < 100:
if is_antipalindrome(num):
print(f"{num:7}", end=" ")
count += 1
if count % 10 == 0:
print()
num += 1
测试结果显示:
3.(求一个整数各个数字的和)编写一个函数,计算一个整数各个数字的和。使用下面函数头:
def sumDigits(n):
例如:sumDigits(234)返回9(2+3+4)。(提示:使用求余运算符%提取数字,而使用除号//去掉提取出来的数字。例如:使用234%10(=4)抽取4,然后使用234//10 (=23)从234中去掉4。使用一个循环来反复提取和去掉每个数字,知道所有数字被提取完为止。)编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。
python代码显示:
def sumDigits(n):
total = 0
while n > 0:
digit = n % 10
total += digit
n //= 10
return total
num = int(input("请输入一个整数:"))
result = sumDigits(num)
print("各个数字的和为:", result)
测试结果显示: