【问题描述】
证明在偶数n以内,歌德巴赫猜想是成立的。歌德巴赫猜想是:任何一个充分大的偶数都可以表示为两个素数之和。例如,4=2+2 6=3+3 8=3+5 50=3+47。
【输入形式】
输入偶数n
【输出形式】
对每一个偶数4, 6, 8, ..., n,依次输出一行。该行内容是<偶数>=<素数1>+<素数2>,要求素数1<=素数2.
【样例输入】
6
【样例输出】
4=2+2
6=3+3
我的代码如下:
a=int(input())
def zhishu(p):
if p==2:
return('1')
for k in range(2,p):
if p%k==0:
return('0')
return('1')
for x in range(4,a+1,2):
for i in range(2,6):
j=x-i
ii=zhishu(i)
jj=zhishu(j)
if ii=='1' and jj=='1' and i+j==x and i<=j:
print(x,'=',i,'+',j,sep='')
break
但是输出与期望输出不一样,会缺一些数,比如以下的输出少了38
错误输出:
4=2+2
6=3+3
8=3+5
10=3+7
12=5+7
14=3+11
16=3+13
18=5+13
20=3+17
22=3+19
24=5+19
26=3+23
28=5+23
32=3+29
34=3+31
36=5+31
40=3+37
42=5+37
44=3+41
46=3+43
48=5+43
50=3+47
期望输出:
4=2+2
6=3+3
8=3+5
10=3+7
12=5+7
14=3+11
16=3+13
18=5+13
20=3+17
22=3+19
24=5+19
26=3+23
28=5+23
30=7+23
32=3+29
34=3+31
36=5+31
38=7+31
40=3+37
42=5+37
44=3+41
46=3+43
48=5+43
50=3+47
希望大佬指正,感激不尽