检查素数是否可以表示为Python中两个素数的和

假设我们有一个质数n。我们必须检查是否可以将n表示为x + y,其中x和y也是两个质数。

因此,如果输入像n = 19,那么输出将为True,因为我们可以像19 = 17 + 2那样表达它

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个功能isPrime()。这需要数字

  • 如果数字<= 1,则

    • 返回False

  • 如果数字与2相同,则

    • 返回True

  • 如果数字是偶数,则

    • 返回False

  • 对于范围在3到((数字的平方根)+ 1)的整数部分的i,增加2,

    • 返回False

    • 如果数字可被i整除,则

  • 返回True

  • 从主要方法中执行以下操作-

  • 如果isPrime(number)和isPrime(number-2)都为true,则

    • 返回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

猜你喜欢