python求助
查看原帖
python求助
1204575
yigexueshen楼主2023/11/27 08:41
N = int(input())
def is_prime(n):
    l0 = [True]*(n+1)
    l0[0] = l0[1] = False
    for i in range(2,n+1):
    #这里i为3是素数,就没有在索引中转化了
    #所以i为几就表示几
        if l0[i]:
            for j in range(2*i,n+1,i):
                l0[j]=False
    return l0
#如果返回的是包括2到n内的所有素数的列表的话
#后面应该会遍历这个列表
#如果返回的是包括bool类型的l0的话
#可以在if判断中使用l0[i]
primes = is_prime(N)
for i in range(4,N+1,2):
#偶数取间隔为2即可
#这里j为较小的那个数,所以可以缩小范围
    for j in range(2,i//2+1):
        k = i - j
        if primes[k] and primes[j]:
            a = j
            b = k
            print("{}={}+{}".format(i,a,b))




        
        
   


2023/11/27 08:41
加载中...