Python 3.x python 3。检查数字是否为素数时出现逻辑错误

Python 3.x python 3。检查数字是否为素数时出现逻辑错误,python-3.x,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," i

在查找素数的程序中,即使用户输入素数,也只显示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")

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

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

如果您仍然有问题,请尝试使用以下函数:

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

如果仍有问题,请尝试使用以下功能:

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

if(ctr==2)
更改为
if(ctr==1)
。您可以删除显示
i=1
的行。将
if(ctr==2)
更改为
if(ctr==1)
。您可以删除显示
i=1
的行。