(1)编写一个函数 isprime(n),用于判别一个整数 n 是否为 素数,若是返回 True,否则返回 False。
(2)调用 isprime 函数,输出 100 以内的所有素数,每 10 个一行。
(3)调用 isprime 函数,将 6-30 之间的所有偶数表示为两个 素数和的形式。例如,6=3+3,8=3+5,10=5+5,12=5+7,14=7+7。
(4)如果一个整数是素数,并且这个数的逆序数也是素数, 则称这个数是一个可逆素数 。例如,157 是素数,而其逆序 数 751 也是素数,则 157 是一个可逆素数。输出 100-200 之 间的所有可逆素数,每行 1 个,要求输出结果写入到文本文 件 Test.txt 中。
import math
# 1
def isprime(n):
if n == 1:
return False
tmp = int(math.sqrt(n))
for i in range(2, tmp+1):
if n % i == 0:
return False
return True
# 2
num = 0
for i in range(1, 101):
if isprime(i):
print(i, end=' ')
num += 1
if num % 10 == 0:
print('\n')
# 3
for i in range(6, 31, 2):
tmp = i // 2
# 去除重复 如8=3+5 8=5+3
# 如不需去重 tmp 替换为i
for j in range(2, tmp):
if isprime(j):
other = i - j
if isprime(other):
# 打印所有符合要求的,如10=3+7 10=5+5
# 如不需要,去掉break前注释
print('{}={}+{}'.format(i,j,other))
# break
# 4
for i in range(100, 200+1):
# reverse number
# f_b = i // 100
# m_b = i
# l_b
#print(list(str(i)))
r_n = int(''.join(reversed(list(str(i)))))
if isprime(i) and isprime(r_n):
with open('Test.txt', 'a+') as f:
f.write('{}\n'.format(i))
写个for循环,判断除了1和n本身都不能整除的就是素数。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632