检查 N 是否是 Python 中的阶乘质数
假设我们有一个数n,我们必须检查n是否是阶乘素数。众所周知,当一个数是一个比任何数的阶乘小1或多1的素数时,就称它为阶乘素数。
因此,如果输入类似于n=719,那么输出将为True,因为719=720-1=6!-1
示例
让我们看看以下实现以获得更好的理解-
from math import sqrt
def isPrime(num) :
if num <= 1:
return False
if num <= 3 :
return True
if num % 2 == 0 or num % 3 == 0:
return False
for i in range(5, int(sqrt(num)) + 1, 6) :
if num % i == 0 or num % (i + 2) == 0:
return False
return True
def solve(num) :
if not isPrime(num) :
return False
factorial = 1
i = 1
while factorial <= num + 1:
factorial *= i
if num + 1 == factorial or num - 1 == factorial :
return True
i += 1
return False
num = 719
print(solve(num))输入
719输出结果
True