编写一个函数 isprime(n),判别一个整数 n 是否为 素数,表示两个 素数和的形式

(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