簡體   English   中英

Python - 素數算法不適用於更高的數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM