我创建了这个函数,将最接近的素数返回到x (等于或大于):
def primo(x):
i=2
prime=True
if x>=0:
while i<=x**(1/2) and prime==True:
if x%i==0:
prime=False
else:
i+=1
if (prime==True or x==2 or x==3) and x>1:
return x
else:
primo(x+1)
else:
primo(x+1)
但只有当x
已经是素数时它才会返回。
我试图将print(x)
放在与返回相同的行上,但如果x
不是素数(例如12),它只打印最后的数字,它确实不归还价值。
我希望代码在每种情况下都能返回素数,尤其是x
不是素数时(在x
为素数之前它会绕过代码)。
感谢。
答案 0 :(得分:5)
您需要return
递归函数调用的值
else:
return primo(x+1)