[英]Python - prime number algorithm doesn't work with higher numbers
我是 python 新手,我的簡單程序有問題。
我找到了一些簡單的算法,可以判斷輸入數是否為素數。 對於 2 或 13 等輸入數字,Evrything 工作正常。當我使用更高的數字時會出現問題(我只需要使用更高的數字)。
num = 3231817448941
if num > 1:
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num, "is a prime number")
else:
print(num,"is not a prime number")
我輸入的數字是 3231817448941。因為這個數字是質數,所以應該打印:
Output should be:
3231817448941 is a prime number
但是在運行這個程序后,我的 concole 是空的,沒有打印任何內容。 同樣,當我使用長度相同但不是素數的相似數字時,它就起作用了。
正如我所說的,我是 Python 新手,如果您有任何建議,我將不勝感激。
一個改變來加速這個過程
num = 3231817448941
if num > 1:
for i in range(2,int(num**0.5)+1): # Dont have to check to n, just sqrt(n)
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num, "is a prime number")
else:
print(num,"is not a prime number")
您可以在此處找到更多優化
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.