循环的质数python

2024-09-28 21:30:46 发布

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

问题:

一种以正整数n为输入的程序,如果n是素数,则返回True,否则返回False。

我的回答:

n = int(input("Enter a number: "))
for i in range(2,n):
    if n%i == 0:
        print(False)
print(True)

当我输入一个质数时,它起作用,但当我输入一个非质数时,它不起作用。

示例:

>>> 
Enter a number: 12
False
False
False
False
True
>>> 

请帮忙!


Tags: in程序falsetruenumberforinputif
3条回答

您可以break并使用else

n = int(input("Enter a number: "))
for i in range(2, n):
    if n % i == 0:
        print(False)
        break
else: 
    print(True)

只有当循环完全完成(即没有n % i等于0)时,才会打印True

你的代码总是在末尾打印True,并在此之前打印若干False。相反,您应该有一个变量(isPrime?)它被初始化为True,当您发现它可以被某些东西整除时,它被设置为False。然后在最后打印变量。

您只需打印每个中间值,如果在函数中使用return,则工作正常

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

>>> prime(5)
True
>>> prime(12)
False

相关问题 更多 >