Python程式中查詢素數的不同方法


在本教程中,我們將探討查詢給定數字是否有效不同的方法。讓我們開始吧。

方法一

這是一個查詢素數的通用方法。

  • 如果數字小於或等於1,則返回False。

  • 如果數字可以被任何數字整除,則函式將返回False。

  • 迴圈結束後,返回True。

示例

 線上演示

# checking for prime
def is_prime(n):
   if n <= 1:
      return False
   else:
      for i in range(2, n):
         # checking for factor
         if n % i == 0:
            # return False
            return False
      # returning True
   return True
print(f"Is 2 prime: {is_prime(2)}")
print(f"Is 4 prime: {is_prime(4)}")
print(f"Is 7 prime: {is_prime(7)}")

輸出

如果您執行以上程式碼,則將獲得以下結果。

Is 2 prime: True
Is 4 prime: False
Is 7 prime: True

方法二

在這種方法中,我們將透過將迭代次數減少到n的平方根來減少迭代次數。讓我們看看程式碼。

示例

 線上演示

import math
# checking for prime
def is_prime(n):
   if n <= 1:
      return False
   else:
      # iterating loop till square root of n
      for i in range(2, int(math.sqrt(n)) + 1):
         # checking for factor
         if n % i == 0:
            # return False
            return False
      # returning True
      return True
print(f"Is 2 prime: {is_prime(2)}")
print(f"Is 4 prime: {is_prime(4)}")
print(f"Is 7 prime: {is_prime(7)}")

輸出

如果您執行以上程式碼,則將獲得以下結果。

Is 2 prime: True
Is 4 prime: False
Is 7 prime: True

方法三

在先前的方法中,我們檢查了偶數。我們都知道,除了2之外,偶數不可能是素數。因此,在這種方法中,我們將刪除所有偶數以減少時間。

示例

 線上演示

import math
# checking for prime
def is_prime(n):
   # checking for less than 1
   if n <= 1:
      return False
   # checking for 2
   elif n == 2:
      return True
   elif n > 2 and n % 2 == 0:
      return False
   else:
      # iterating loop till square root of n
      for i in range(3, int(math.sqrt(n)) + 1, 2):
         # checking for factor
         if n % i == 0:
            # return False
            return False
      # returning True
      return True
print(f"Is 2 prime: {is_prime(2)}")
print(f"Is 4 prime: {is_prime(4)}")
print(f"Is 7 prime: {is_prime(7)}")

輸出

如果您執行以上程式碼,則將獲得以下結果。

Is 2 prime: True
Is 4 prime: False
Is 7 prime: True

結論

如果您對本教程有任何疑問,請在評論部分提出。

更新於:2020年4月24日

1K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

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