要求`a+b`从小到大输出,最后的循环这么改就可以了(?):
```python
for ab in y:
for a in x:
if ab-a in x:
print(ab,"=",a,"+",ab-a)
```
by xkcdjerry @ 2021-04-16 23:33:27
# 90分了,还是有点问题,速度慢了
```python
n,x,y,c=int(input()),[],[],0
for i in range(2,n+1):
for j in range(2,i):
if i%j==0:
break
else:
x.append(i)
for i in range(4,n+1):
if i%2==0:
y.append(i)
for i in y:
c=0
for a in x:
for b in x:
if i==a+b:
print(i,"=",a,"+",b,sep="")
c+=1
if c>0:
break
if c>0:
break
```
by chris1988 @ 2021-04-16 23:45:43
# 更新了一下代码
```python
n,x,y,c=int(input()),[],[],0
for i in range(2,n+1):
for j in range(2,int(i**0.5)+1):
if i%j==0:
break
else:
x.append(i)
for i in range(4,n+1,2):
y.append(i)
for i in y:
c=0
for a in x:
for b in x:
if i==a+b:
print(i,"=",a,"+",b,sep="")
c+=1
if c>0:
break
```
by chris1988 @ 2021-04-17 00:13:38
@[chris1988](/user/461877)
三重循环了。过于冗杂,加上python运行时间本来就慢 可能就超时了
by wykun1234 @ 2021-09-01 09:44:24
```python
n = int(input())
def func(x):
flag = 1
if x == 2:
flag = 1
else:
for j in range(2, int(x/2+1)):
if x % j == 0:
flag = 0
break
return flag
arr = []
for i in range(2, n+1):
if func(i) == 1:
arr.append(i)
for i in range(4, n+1, 2):
for m in arr:
if func(i - m) == 1:
print("{}={}+{}".format(i, m, i-m))
break
```
思路一样,微调下少了一重循环
by wykun1234 @ 2021-09-01 09:46:38
```python
n,x,y,c=int(input()),[],[],0
for i in range(2,n+1):
for j in range(2,int(i**0.5)+1):
if i%j==0:
break
else:
x.append(i)
for i in range(4,n+1,2):
y.append(i)
for i in y:
c=0
for a in x:
for b in x:
if i==a+b:
print(i,"=",a,"+",b,sep="")
c+=1
if c>0:
break
```
# ac代码
by tlm1587201497 @ 2021-10-06 09:01:18
@[tlm1587201497](/user/494226) tle了
by ccecust @ 2022-02-17 12:51:00