Python素数“或”运算符issu

2024-04-18 21:58:14 发布

您现在位置:Python中文网/ 问答频道 /正文

n = input("enter the no: ")
def prime():
    global count
    count = 0
    for i in range(n):
        if n==0 or n==1:
            print "it is not prime"            
        elif i==0 or i==1:
            pass       
        elif n%i==0:
            count+=1
    return count
prime()
if count>0:
    print "not prime"
else:
    print "it is prime"

我正在努力寻找一个给定的“否”是否为素数。我对数字0和1有异议。对于“0”,我得到的结果是“它是素数”。对于“1”,我得到的结果是“它不是素数”和“它是素数”。我试着用“in”操作符代替“or”。但我得到了同样的结果。请告诉我哪里错了


Tags: orthenoininputifiscount
2条回答

如果使用全局变量count,则不必返回它。如果从1开始循环,代码可以变得更清晰

所以对于素数,它只有一个因子(1)

n = int(raw_input("enter the no: "))
count = 0
def prime():
    global count
    global n
    count = 0
    for i in range(1,n):           
        if n%i==0:
            count+=1

prime()
if count==1:
    print "It is prime"
else:
    print "Not prime"

输入“0”时,范围(n)返回空列表。所以它给你0是素数。 请尝试以下代码:

n = input("enter the no: ")
def prime():
    global count
    count = 0
    if n == 0 or n == 1:
        count = 1
    for i in range(n):
        if i==0 or i==1:
            count = 1
        elif n%i==0:
            count+=1
    return count
prime()
if count>0:
    print "not prime"
else:
    print "it is prime"

相关问题 更多 >