想请问一下我的问题出在哪里呢?因为我运行不出结果来
200以内的正偶数(大于等于4)能够分解为两个质数之和。每行放6个式子。
import math
def prime(x):
if x==1:
return False
elif x==2:
return False
else:
for i in range(2,int(math,sqrt(x))+1):
if x%i==0:
return False
return True
def ck_num():
n=0
for k in range(int(4.200)):
for i in range(1,k):
j=k-i
if prime(i)and prime(j)==True:
print(f"{k}={i}+{j}",end="")
n=n+1
if n%6==0:
print("\n")
ck_num()
-
2也是素数,if x==2: return True
range(int(4.200)): 这是错的,range()里不能有int()
换行只要print()即可,print('\n')会输出2个换行
if prime(i)and prime(j)==True: 只要if prime(i)and prime(j):即可, 要么if prime(i)==True and prime(j)==True: 一个有==一个没有==怪怪的
print(f"{k}={i}+{j} ",end="") 加一个以上的空格,否则式子都连在一起了
import math
def prime(x):
if x==1:
return False
elif x==2:
return True
else:
for i in range(2,int(math.sqrt(x))+1):
if x%i==0:
return False
return True
def ck_num():
n=0
for k in range(4,200):
for i in range(2,k):
j=k-i
if prime(i) and prime(j):
print(f"{k}={i}+{j} ",end="")
n=n+1
if n%6==0:
print()
ck_num()
关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Python-绝对素数和哥德巴赫猜想