关于#python#的问题,请各位专家解答!

写一个函数,参数为一个整数x,返回不小于该整数的最小素数,求解答。

用一个循环,不断判断不小于当前的数的数是否为素数即可,判断素数可以用2到这个整数-1之间的数整除它来判断是否为素数,如果有一个能整除即不是素数,如果所有的数都不能整除则说明是素数,也可以用2到这个数开平方之间的数是否能整除这个数来判断也可以,代码如下:
参考链接:
https://www.jb51.net/article/175775.htm
素数表 - 百度文库

def findMinPrime(num):
    
    while True:  #循环查找不小于num的最小素数
        
        prime = 1  #素数标志,为1即默认当前数位素数,等待下面的循环判断检测
        #https://www.jb51.net/article/175775.htm
        #用2到num-1之间的数整除num来判断num是否为素数,也可以用 2到num开平方之间的数来整除判断,
        for i in range (2,num):  
            if num%i==0:  #如果能整除,说明不是素数,退出循环
                prime=0
                break
        if prime ==1:  #如果判断完,是素数,则返回这个值
            return num
        else :  #如果判断完,不是素数,则把num+1开始下一次检测判断
            num=num+1
            

num = int(input("请输入一个整数:")) #获取一个整数
print("不小于",num,"的最小素数是",  findMinPrime (num))  #打印结果      

img

from ast import While
import math;

def is_prime(x):
    if x < 2:
        return False
    for i in range(2, int(math.sqrt(x))+1):
        if x % i == 0:
            return False
    return True

def f(x):
    while True:
        if is_prime(x):
            return x
        x += 1

if __name__ == '__main__':
    x = int(input("Enter an integer: "))
    print(f(x))

img


def FindMinPrime(num):
    log = True
    while log:
    #遍历2到num/2+1
    #若num是11,则range(2,6)左闭右开,遍历的是2,3,4,5
        for i in range(2,int(num/2)+1):
        #满足条件,不是素数
            if num % i == 0:
            #不是素数,直接num+1,并退出for循环
                num += 1
                break
        #如果i等于num/2,就说明已经是最后一次循环,若还是素数,则该数就是素数
            elif i == int(num/2):
            #标记为False,退出循环
                log = False
    return num

if __name__ == '__main__':
    num = eval(input("请输入一个数:"))+ 1
    print('目标素数为:', FindMinPrime(num))

百度一搜一大把


from ast import While
import math;
 
def is_prime(x):
    if x < 2:
        return False
    for i in range(2, int(math.sqrt(x))+1):
        if x % i == 0:
            return False
    return True
 
def function(x):
    while True:
        if is_prime(x):
            return x
        x += 1
 
if __name__ == '__main__':
    x = int(input("Enter an integer: "))
    print(f(x))

def findminprime(number):
where True:
flag = 1;
for i in range(number, number+1):
if num % i == 0:
flag = 0
break
if flag == 1:
return number
else:
number += 1

不知道你这个问题是否已经解决, 如果还没有解决的话:


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^