我开始重新开始编写 Python 代码,并意识到我无法完全弄清楚这一点。我正在尝试编写一个素数函数。有人可以帮忙解决这个问题吗?
这是我的代码:
def is_prime(x):
a = True
for n in range(2, x-1):
while n < x:
n+=1
if x % n == 0:
a = False
elif n < 2:
a = False
else:
a = True
break
break
return a
如果有人知道我做错了什么,请告诉我。一个月前我尝试过这个,但无法理解其中的逻辑。我想我被难住了,从来没有寻求帮助...另外,你认为我平均应该尝试这样做多长时间才能寻求帮助?
最佳答案
正如前面所说,您可以通过仅检查奇数并迭代到 num 的 sqrt 来优化代码
import math
def isPrime(num):
if(num==1):
return False
if(num==2):
return True
if(num%2==0):
return False
i = 3
while(i<math.sqrt(num)+1):
if num%i==0:
return False
i += 2
return True
#do the inputs and check if isPrime
#print(isPrime(2))
关于python - 如何在Python中找到素数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310435/