gpt4 book ai didi

python - Python 中 1 到 N 之间的所有质数之和 [第 2 部分]

转载 作者:行者123 更新时间:2023-12-04 17:42:13 25 4
gpt4 key购买 nike

只是为了澄清:)这是我的 previous question 的第 2 部分.我发布了一个新问题,因为之前的问题有点困惑,而且由于我是 Stack 的新手,所以我仍在学习这里的工作原理。

实现建议后,我之前的代码开始工作,但开始出现超出时间限制的问题。我已尽力减少代码,但 TLE 仍在发生。这是我的新代码:

from math import sqrt 
test = int(input())
for i in range(test):
summ = 0
maxx = int(input())
if maxx==1:
summ = 0
elif maxx==2:
summ += 2
else:
summ = summ + 2
for x in range(3,maxx+1,2):
half = int(sqrt(x)) + 1
for y in range(3,half,2):
if x%y==0:
break
else:
summ = summ + x
print(summ)

这次代码产生了正确的结果。我只想知道如何使我的代码更高效并减少时间限制? TLE Image

最佳答案

嵌套循环过多,增加了时间复杂度。

这是一个简单的函数,花费的时间要少得多。

import time

def sum_of_prime(n):
prime =[]
for num in range(2,int(n)):
if all(num%i!=0 for i in range(2,num)):
prime.append(num)
return sum(prime[0:len(prime)])


n = input("Enter value of n:")
start = time.clock()
print(sum_of_prime(n))
print (time.clock() - start)

关于python - Python 中 1 到 N 之间的所有质数之和 [第 2 部分],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53940537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com