Adn*_*nan 3 python performance interpreter
我正在尝试完成Project Euler挑战:
通过列出前六个素数:2,3,5,7,11和13,我们可以看到第6个素数是13.
什么是10 001主数?
我的代码似乎是正确的,因为它适用于小数字,例如6th prime是13.
我如何改进它,以便代码将更快地运行更大的数字,如10 001.
代码如下:
#Checks if a number is a prime
def is_prime(n):
count = 0
for i in range(2, n):
if n%i == 0:
return False
break
else:
count += 1
if count == n-2:
return True
#Finds the value for the given nth term
def term(n):
x = 0
count = 0
while count != n:
x += 1
if is_prime(x) == True:
count += 1
print x
term(10001)
Run Code Online (Sandbox Code Playgroud)
更新:
谢谢你的回复.我应该更清楚,我不是要加速翻译或找到更快的解释器,因为我知道我的代码不是很好,所以我正在寻找使我的代码更有效的方法.
Jer*_*ome 11
需要思考的几个问题:
agf*_*agf 10
Project Euler的目的不是考虑学习编程,而是考虑算法.关于问题#10,你的算法需要比#7等更快.所以你需要找到一种更好的方法来查找素数,而不是更快的方式来运行Python代码.人们通过考虑数学来解决这些问题,而这些问题是你现在使用的计算机速度要慢得多.
在那个问题上,如果您真的需要帮助来思考问题,可以在https://math.stackexchange.com/上询问您的素数算法.
| 归档时间: |
|
| 查看次数: |
5999 次 |
| 最近记录: |