檢查素數能否表示為 Python 中兩個素數的和


假設我們有一個素數 n。我們必須檢查是否可以將 n 表示為 x + y,其中 x 和 y 也是兩個素數。

因此,如果輸入類似於 n = 19,則輸出將為 True,因為我們可以將其表示為 19 = 17 + 2

為了解決這個問題,我們將遵循以下步驟:

  • 定義一個函式 isPrime()。這將接收一個數字。
  • 如果數字 <= 1,則
    • 返回 False
  • 如果數字等於 2,則
    • 返回 True
  • 如果數字為偶數,則
    • 返回 False
  • 對於 i 從 3 到數字平方根的整數部分 + 1,步長為 2,執行:
    • 如果數字可以被 i 整除,則
      • 返回 False
  • 返回 True
  • 從主方法執行以下操作:
  • 如果 isPrime(number) 和 isPrime(number - 2) 都為真,則
    • 返回 True
  • 否則,
    • 返回 False

讓我們看看下面的實現,以便更好地理解:

示例

線上演示

from math import sqrt
def isPrime(number):
   if number <= 1:
      return False
   if number == 2:
      return True
   if number % 2 == 0:
      return False
   for i in range(3, int(sqrt(number))+1, 2):
      if number%i == 0:
         return False
   return True
def solve(number):
   if isPrime(number) and isPrime(number - 2):
      return True
   else:
      return False
n = 19
print(solve(n))

輸入

19

輸出

True

更新於:2020-12-29

771 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

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