检查素数是否可以表示为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