def get_oddlist(start=6, end=100): # 生成6-100的偶数的列表
ret = []
for i in range(start, end + 1):
if i % 2 == 0:
ret.append(i)
return ret
print(get_oddlist())
第二步:生成1-100的素数的列表
def get_prime(n): # prime 在python中是素数的意思 这里是定义一个函数,获取素数列表
ret = []
if n < 1:
pass
else:
ret.append(2)
for i in range(3, n):
isPrime = True # isPrime是求素数的函数 首先,假设遍历的i是素数
for j in range(2, i): # 素数除了1和它本身,是不能被任何其他数整除的,遍历2到i之间的任何数j
if i % j == 0: # 如果i 能整除 j 则,i不是 素数
isPrime = False
break # 跳出这个循环
if isPrime: # 反之,i是素数
ret.append(i) # 把i 添加到列表中
return ret # 返回结果
print(get_prime(100)) # 把100传参给n,即 n = 100
最后:遍历偶数列表,每遍历一出一个偶数,就使用双层嵌套for循环遍历1-100的素数列表
def main(n):
odd_list = get_oddlist(end=n) # 生成6-100的偶数列表
prime_list = get_prime(n) # 生成1-100的素数列表
right_or_not = True
for odd in odd_list: # 遍历每一个偶数
isTrue = False # 判断每一个偶数 是否有符和条件的(两个素数相加) 假设 该偶数没有这种条件
for prime1 in prime_list: # 在素数列表 遍历出 第一个素数
if isTrue: # 如果 isTrue = True ,跳出 素数的for循环 即一个偶数只可能就一种结果,得到该结果跳出,遍历另一个偶数的
break # 跳出后,跳转到 if not isTrue:
for prime2 in prime_list: # 在素数列表 遍历出 第二个素数
if odd == (prime1 + prime2): # 如果 遍历出的 偶数 = 第一素数 + 第二个素数
print("偶数%d=%d+%d符合" % (odd, prime1, prime2)) # 打印结果
isTrue = True # 一旦找到一个符合条件的,就立即退出当前循环
break
if not isTrue: # 如果该数 不符合条件,那么直接退出,证明猜想错误 ,之后重新遍历偶数
print("%d无法用两个素数之和表达" % odd)
right_or_not = False
break
if right_or_not:
print("猜想成立")
else:
print("猜想错误")
main(100) # 传参 n=100