L太大会爆超时,盲狙range(10001)就AC了
查看原帖
L太大会爆超时,盲狙range(10001)就AC了
1348231
Orig1nal楼主2024/5/11 11:32
import math
L = int(input())
list1 = []
list2 = []

for number in range(2,L+1):#寻找1-L的质数  特判 1不是质数      改L ???? ????
    is_prime = True #初始化
    for y in range(2,number): #能被1和自身以外的数字整除 说明不是质数
        if number % y == 0:            
            is_prime = False
            break
    if is_prime == True:
        list1.append(number)

#获得质数之后 开始求和
for i in list1:
    if sum(list2) >= L:
        break
    else:
        list2.append(i)
    if sum(list2) > L:
        list2.pop() #加好之后再判断


for a in list2:
    print(a)
print(len(list2))

请问可以如何修改 使L+1 不爆超时

2024/5/11 11:32
加载中...