📅  最后修改于: 2023-12-03 14:50:47.878000             🧑  作者: Mango
这道问题目标是给定一个数字,找到它的下一个素数。
首先需要明确什么是素数:素数是只能被1和本身整除的数字。为了找到下一个素数,我们需要一个函数 is_prime()
来判断一个数字是否为素数。之后,我们可以通过循环不断将找到下一个大于给定数字的素数为止。
def is_prime(num):
if num < 2: # 小于2的数不是素数
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def next_prime(num):
num += 1
while not is_prime(num):
num += 1
return num
函数 is_prime(num)
接收一个数字 num
,如果该数字小于2,则不是素数,返回 False
;如果该数字有其他因子,也不是素数,返回 False
;如果该数字没有其他因子,则是素数,返回 True
。
函数 next_prime(num)
接收一个数字 num
,将其自增1,直到找到一个素数为止,然后将该素数返回。
>>> next_prime(7)
11
>>> next_prime(121)
127
>>> next_prime(300)
307
##结论
以上是一个简单的寻找下一个素数的算法,考虑到效率,对于一个非常大的数字,其中可能有一些优化的方法,我们可以寻找那些与当前数字的差最小的素数,而不是逐个判断素数。