写一个函数,参数为一个整数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)) #打印结果
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))
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