Python 判斷素數


素數在許多資訊科技應用中扮演著核心角色,例如密碼學。因此,在各種應用中使用 Python 程式檢查素數是必要的。素數是指除了 1 和自身之外沒有其他因子的數。下面我們將看到可以找出給定數字是否為素數的程式。

方法

我們採用以下方法來判斷一個數是否為素數。

  • 首先檢查數字是否為正數。因為只有正數才能是素數。

  • 我們將數字除以從 2 到小於給定數字的數範圍內的所有數字。

  • 如果在這個範圍內任何數字的餘數為零,則它不是素數。

示例

 線上演示

x = 23
if x > 1:
   for n in range(2, x):
      if (x % n) == 0:
         print(x, "is not prime")
         print(n, "times", x // n, "is", x)
         break
   else:
      print(x, "is a prime number")
   else:
      print(x, "is not prime number")

輸出

執行上述程式碼得到以下結果:

23 is a prime number

檢查 6i+1 的形式

所有大於 6 的素數都可以表示為 6i+1 的形式。這裡 I 從 1 開始,依次遞增為整數。在下面的例子中,我們將透過將其除以 6 並檢查餘數是否為 1 來檢查該數字是否可以表示為 6i+1 的形式。相應地,我們將決定該數字是否為素數。我們還需要檢查 i 值是否等於給定數字的平方根。

示例

 線上演示

def CheckPrime(n):
   # Check for cases of 2 and 3
   if (n <= 1):
      return False
   if (n <= 3):
      return True
   # skip checking middle five numbers in the loop
   if (n % 2 == 0 or n % 3 == 0):
      return False
   i = 5
   while (i * i <= n):
      if (n % i == 0 or n % (i + 2) == 0):
         return False
      i = i + 6
   return True
# Check for inputs
if (CheckPrime(31)):
   print(" true")
else:
   print(" false")
if (CheckPrime(25)):
   print(" true")
else:
   print(" false")

輸出

執行上述程式碼得到以下結果:

true
false

更新於:2020年2月4日

714 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.