@[qianyan_](/user/339332) 为啥`print(ans)`
by ADay @ 2020-04-22 21:23:10
@[qianyan_](/user/339332)
原来的代码如果$s \ge L$就会多输出一个
```python
L=int(input())
s=0
ans=[]
if L<=1:
print(0)
else:
for i in range(2,100000):
if s>=L:
break
else:
for j in range(2,i):
if i%j==0:
break
else:
if s+i<=L:
ans.append(i)
s+=i
else:
break
for num in ans:
print(num)
print(len(ans))
```
就好了
by ADay @ 2020-04-22 21:28:50
$s> L$
by ADay @ 2020-04-22 21:29:12
写错了
by ADay @ 2020-04-22 21:29:19
```python
L=int(input())
s=0
ans=[]
if L<=1:
print(0)
else:
while True:
for i in range(2,100000):
if s>=L:
break
else:
for j in range(2,i):
if (i%j==0):
break
else:
ans.append(i)
s+=i
break
for num in ans:
print(num)
print(len(ans))
```
@[ADay](/user/312393) 不好意思哈,debug的时候加的,忘删了,是这个
by qianyan_ @ 2020-04-22 21:35:21
@[qianyan_](/user/339332)
原来的代码如果$s>L$就会多输出一个
改成这样:
```python
L=int(input())
s=0
ans=[]
if L<=1:
print(0)
else:
for i in range(2,100000):
if s>=L:
break
else:
for j in range(2,i):
if i%j==0:
break
else:
if s+i<=L:
ans.append(i)
s+=i
else:
break
for num in ans:
print(num)
print(len(ans))
```
by ADay @ 2020-04-22 21:38:14
@[ADay](/user/312393) 可是改成大于样例就过不去,就是原代码试了好多个都是可以,边界也特判了,找不出来bug
by qianyan_ @ 2020-04-22 21:39:50
@[qianyan_](/user/339332) 不是改成大于,是在每次`s+=i`时判断
by ADay @ 2020-04-22 21:40:52
@[ADay](/user/312393) 哇哦,懂了,谢谢谢谢!
by qianyan_ @ 2020-04-22 21:46:08