这是第一次提交的代码,显示1,3,5测试点TLE了,所以我就想着把循环的范围缩小:
L = int(input())
s = 0
q = []
num = 0
for i in range(1,L+1):
k = 0
for j in range(1,L+1):
if i % j == 0:
k += 1
if k == 2 and s < L:
q.append(i)
num += 1
s += i
q.append(num)
for o in q:
print(o)
下面这是第二次提交的代码,我把第二个for循环的范围缩小了,但是3测试点还是TLE,而且1,5测试点还变成WA了。实在是虚心求教,这到底是为什么呢?
import math
L = int(input())
s = 0
q = []
num = 0
for i in range(2,L+1):
h = int(math.sqrt(i))
k = 0
for j in range(1,h+1):
if i % j == 0:
k += 1
if k == 1 and s<L:
q.append(i)
num += 1
s += i
q.append(num)
for o in q:
print(o)