检查 N 是否为 Python 中的阶乘素数
假设我们有一个数字 n,我们需要检查 n 是否是阶乘素数。众所周知,当一个数字比任意数字的阶乘少 1 或多 1 时,它被称为阶乘素数。
因此,如果输入类似于 n = 719,则输出将为 True,因为 719 = 720 - 1 = 6! - 1
为了解决这个问题,我们将遵循以下步骤 −
- 如果 num 不是素数,则
- 返回 False
- 阶乘 := 1,i := 1
- 如果阶乘 <= num + 1,则
- 阶乘 := 阶乘 * i
- 如果 num + 1 等于阶乘或 num - 1 等于阶乘,则
- 返回 True
- i := i + 1
- 返回 False
示例
让我们看看以下实现以获得更好的理解 −
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
广告