检查素数能否表示为 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 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告