2024-09-28 21:30:46 发布
网友
问题:
一种以正整数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 >>>
请帮忙!
您可以break并使用else:
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。
n % i
True
你的代码总是在末尾打印True,并在此之前打印若干False。相反,您应该有一个变量(isPrime?)它被初始化为True,当您发现它可以被某些东西整除时,它被设置为False。然后在最后打印变量。
False
isPrime
您只需打印每个中间值,如果在函数中使用return,则工作正常
return
def prime(n): for i in range(2, n): if n%i == 0: return False return True >>> prime(5) True >>> prime(12) False
您可以
break
并使用else
:只有当循环完全完成(即没有
n % i
等于0)时,才会打印True
。你的代码总是在末尾打印
True
,并在此之前打印若干False
。相反,您应该有一个变量(isPrime
?)它被初始化为True
,当您发现它可以被某些东西整除时,它被设置为False
。然后在最后打印变量。您只需打印每个中间值,如果在函数中使用
return
,则工作正常相关问题 更多 >
编程相关推荐