python - 这个 python 质数函数有什么问题?

标签 python function numbers primes

所以我只想检查我的功能有什么问题。它可以很好地给出质数,但是当我输入像 4 这样的数字时,它会打印“4 不是质数”然后“4 是质数”。 似乎是什么错误? (我知道这很难过,但我花了 8 个小时做这个(初学者))。

def isprime(n):
    if n == 1:
        print ("1 is not prime.")
    if n == 2:
        print ("2 is a prime number.")
    for x in range (2, n):
        if n%x == 0:
            print (n, "is not prime.")
        if n%x != 0:
            print (n, "is a prime number.")

最佳答案

你的算法是错误的,你需要在检测到一个因子后中断,如果没有因子则打印一个素数。

这是更正后的版本:

def isprime(n):
    if n == 1:
        print ("1 is not prime.")
        return
    if n == 2:
        print ("2 is a prime number.")
        return
    for x in range (2, n):
        if n%x == 0:
            print (n, "is not prime.")
            break
    else:
        print (n, "is a prime number.")

关于python - 这个 python 质数函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861352/

相关文章:

java - 如何使用Java正确读取RRD文件?

python - 大数的质因数分解

python - 如何解决 pycharm 上的错误 "dotenv installation error"

python - 如何在编码时阻止自己覆盖 Python 函数?

javascript - 是什么原因?运算符或使用字符串?

python - CSV 循环遍历行

c++ - 如何结束文件输出它的数据?

C - 两个整数值之一的函数值未正确传递

c - 为什么我生成的随机数在循环内没有改变? C

C GMP 无限精度 - 我做错了什么?