逐渐发现脑子不够用。。。
python作业验证哥德巴赫猜想:
嗯。递归实在不会。就用循环加条件从句随便做了。
def sushu(m):#判断素数
for i in range(2,m):#因子直接排除1和m本身
if m%i==0:#只要再出现一个因子果断返回None
return None
else:
return m
def gede(n):#验证哥德巴赫猜想
for p in range(2,n):#for循环一个数
if p==sushu(p) and n-p==sushu(n-p):#直接判断p和n-p是否是不是素数
return p, n-p
else:
continue
def main():
n=int(input())#输入要验证的数
if n%2!=0:
print("Data error!")
else:
p,q=gede(n)
print("{} = {} + {}".format(n,p,q))
main()
学C语言的时候大概做过类似的题,就是两个for语句嵌套看啥时候符合就break,刚刚做的时候也是这样的思路,但代码太长,有问题找不出来,为此还去B站学了怎么用pycharm debug。。。
debug途中忽然顿悟,
if p==sushu(p) and n-p==sushu(n-p):#直接判断p和n-p是否是不是素数
直接省下了一个for循环一个条件语句。
懒才是第一生产力!