【发布时间】:2019-08-16 08:46:42
【问题描述】:
我正在尝试根据用户输入制作一个简单的素数检测器。这些代码行在这里我输入了 2、5 和 123。即使它们是质数,但程序似乎为您输入的任何数字打印“非质数”
我已经尝试了很多,但我的大部分代码甚至没有打印任何东西。
def check_Prime(f):
if(f<2):
return False
can=math.sqrt(f)
for x in range(2,can):
if(f%x==0):
return False
else:
return True
if check_Prime is True:
print("prime number")
else:
print("not prime number")
我希望如果你输入一个素数,那么它会打印(“素数”),如果你没有输入素数,它会打印另一个
【问题讨论】:
-
您的
check_Prime会在您找到任何不是x的因子的数字时返回true。你也没有打电话给它。 -
您正在检查函数
check_Prime是否为True,它不是,您可以尝试result = check_Prime(n),然后在if 条件下使用check_Prime而不是result -
你的函数有缺陷。如果你传递了
3,你的range将失败,因为 sqrt(3) 不是 int
标签: python python-3.x