python - 如何在Python中找到素数函数

标签 python boolean logic primes boolean-logic

我开始重新开始编写 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/

相关文章:

python - 调用异步函数时如何防止上下文切换?

python - 如何在 python 中制作有效的 JSON 格式?

javascript - 为什么这个 boolean 转换没有按预期工作?

.net - boolean 和数学表达式解析器

python - Tkinter 复选按钮不起作用

python - 如何在Python中分配类变量 "dynamically"?

javascript - 通过传递回调函数返回新对象

python - 空列表上出现 "all"和 "any"结果的原因

c - 为什么这不是无限循环?它是如何工作的?

c - 根据用户输入求解表达式