所以我创建了一个程序来生成一个数,并检查它是否是素数,但是我想得到一个更大的素数。目前的程序对高达200万英镑的质数很快起作用。在
def is_Prime(num):
if(num < 2):
return False
elif (num == 2):
return True
if(num%2 == 0):
return False
for i in range(3, int(num**0.5)+1, 2):
if(num%i == 0):
return False
return True
bigPrime = 0;
for i in range(1000000):
possiblePrime = (2*i) +1
if(is_Prime(possiblePrime)):
bigPrime = possiblePrime
print(bigPrime)
我写作的主要部分
^{2}$是我的计算机科学老师告诉我的一种算法,它擅长生成素数。在
我的is_素数函数或生成算法的任何帮助都是非常感谢的。在
这是一个在很短的时间内给出素数87178291199的代码。在
首先,我换了一个最快的素性测试。首先,我建立了一个低于某个极限的素数列表(在学校你学习了Eratosthenes筛来做这个,这里有一个更有效的算法)。然后,为了检查一个数是否是素数,我检查它是否可以被列表中的任何一个素数整除。在
其次,我改变了你可能的时间。你的候选对象都是奇数:如果你只想要一个“大素数”,这就太过分了。 很好的候选者是Mersenne数(形式为})。见Wikipedia。你可以在方便的时候添加其他方法来产生大的候选人。在
2**n - 1
)和阶乘(n! -1
或{相关问题 更多 >
编程相关推荐