设计判断素数的函数prime,若是素数返回True,否则返回False。利用该函数验证哥德巴赫猜想:任意大于等于4的偶数,可以用两个素数之和表示。输出某大于等于4的偶数的所有素数对之和。 如:
实例1
输入一个大于等于4的偶数60
60=7+53
60=13+47
60=17+43
60=19+41
60=23+37
60=29+31
注意:标点符号都用英文符号,严格按照上述实例的输入输出方式设计程序,运行达到所需效果。
提示:将输入的整数拆成x=a+b两个数之和,只要控制a的变化范围即可,a的取值范围为[2, x/2]。当循环遍历到一个a,则b=x-a,若a和b都是素数,则按要求输出这两个数。
源程序如下:
#判断是否是素数
def isPrime(n):
for i in range(2,n-1):
if n % i == 0:
return False
else:
return True
n = int(input("请输入一个大于4的偶数:"))
for i in range(2,n//2):
if (isPrime(i) and isPrime(n-i)):
print("%d=%d+%d\n"%(n,i,n-i))
运行结果:
请输入一个大于4的偶数:60
60=7+53
60=13+47
60=17+43
60=19+41
60=23+37
60=29+31
import math
def isPrime(n):
if n==1:
return False
elif n==2:
return True
else:
for i in range(2,int(math.sqrt(n))+1):
if n%i==0:
return False
return True
def check_num():
k = 0
for i in range(4,2000,2):
for j in range(1,i):
n2 = i -j
if isPrime(n2) and isPrime(j) and j<=n2:
print(j,"+",n2,"=", i,end=" ")
k+=1
if k%6==0:
print("\n")
check_num()