python 3.检查数字是否为素数时的逻辑错误

时间:2016-06-09 12:43:31

标签: python-3.x

在我的查找素数的程序中,即使用户输入素数,也只显示else语句。在我的if else声明中有问题吗?还是在一些数学运算符?我试图通过python语法正确缩进它。请整理代码。

    num=int(input("enter a number  :    "))
    ctr=0
    i=1
    for i in range(1,num):
        if(num%i==0):
             ctr+=1

    if(ctr==2):
        print(num," is prime")

    else:
        print(num," is not prime")

2 个答案:

答案 0 :(得分:2)

当用户输入n的素数时,它只能被1和它自身整除。但是range(1,n)永远不会到达n,因此ctr对于素数而言是1,而不是2。

答案 1 :(得分:0)

如果您仍然遇到问题,请尝试使用以下功能:

def isprime(number):
    if number == 1:
        return False
    for i in range(2,int(number**0.5)+1):
        if number%i==0:
            return False
    return True

要使用它,请键入isprime(number)并将number替换为您要检查的号码。