Python 判断 N 是否为强素数
假设我们有一个数字 n。我们要检查 n 是否为强素数。众所周知,当一个素数大于其最近素数的平均值时,它被称为强素数。
因此,如果输入类似于 num = 37,则输出为 True,因为最近的素数是 31 和 41,平均值为 (31+41)/2 = 36。并且 37 > 36。
为了解决这个问题,我们将遵循以下步骤:
- 如果 num 不是素数或 num 为 2,则
- 返回 False
- last := num - 1, next := num + 1
- 当 next 不是素数时,执行
- next := next + 1
- 当 last 不是素数时,执行
- last := last - 1
- avg := (last + next) / 2
- 如果 num > avg,则
- 返回 True
- 返回 False
示例
让我们看看下面的实现来更好地理解:
def isPrime(num): if num > 1: for i in range(2,num): if num % i == 0: return False return True return False def solve(num): if isPrime(num) == False or num == 2: return False last = num - 1 next = num + 1 while isPrime(next) == False: next += 1 while isPrime(last) == False: last -= 1 avg = (last + next) / 2 if num > avg: return True return False num = 37 print(solve(num))
输入
37
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
输出
True
广告