我编写了一个主要检查程序,用于检查数字平方根的余数。我特意删除了1和0的模数,程序仍然返回上述错误。这是该计划:
def primeCheck(n):
x = math.floor(math.sqrt(n))
for i in range(x):
if (n != 1) and (n != 0):
if n%i == 0:
return False
return True
它适用于所有整数但是2。
primeCheck(2)
x = 1
i in range(1)
→0
因此第4行中的if
语句返回False
,但仍然会返回错误。
答案 0 :(得分:3)
三个问题:
特别处理n
小于2的情况。
您需要对i
和0
1
进行打折。
您需要包含该数字的向下舍入的平方根(否则您将错误地报告素数 - 例如49 - 作为素数)。
< / LI> 醇>(2)和(3)通过写
来解决 for i in range(2, 1 + math.floor(math.sqrt(n))):
并放弃错误检查if (n != 1) and (n != 0):
。
答案 1 :(得分:1)
在n % i
中,n
不是i
,不能为零,而是n != 0
。
在这种情况下检查i != 0
没用,您需要检查datetimepicker
。
答案 2 :(得分:0)
试试这个:
[0, 1, 2]