确定一个数字是否为素数

时间:2016-08-13 00:25:26

标签: python

下面的代码一直显示素数的“不是素数”,而非素数的数字是“素数”。我究竟做错了什么?

quuN = int(input("ENTER NUMBER : "))

quuM = 2

if (quuN <= 0) :

    print("ENTER NON-NEGATIVE NUMBER PLEASE")


elif (quuN % quuM == 0) :

    print(" IS PRIME " )

else : 

    print("IS NOT PRIME ")

3 个答案:

答案 0 :(得分:0)

逻辑错误

素数(或素数)是大于1的自然数,除了1和自身之外没有正除数。大于1的自然数不是素数,称为复合数。

下面的简单python代码

def is_prime(n):
    for i in range(3, n):
        if n % i == 0:
            return False
    return True

答案 1 :(得分:0)

以上代码检查数字是偶数还是奇数。如果输入素数,例如17,则代码检查17是否小于或等于0.然后它检查 17%2 ,它评估为1,而不是0.因此,否则执行块,打印 IS NOT PRIME

如果输入偶数,则会打印 IS PRIME。

此代码检查Prime编号。

def is_prime(n):
    import math
    for i in range(2, int(math.sqrt(n))+1):
        if n % i == 0:
            return False
    return True

答案 2 :(得分:0)

这是不使用任何库的答案

注意:只需要检查直到sqrt(n),解释here

def isPrime(n):
    if (n<=1): return False

    for i in range(2, int(n**(.5))+1):
        if (n%i==0):return False

    return True