答案 0 :(得分:1)
如下:
if num % 2 == 0 and num > 2:
可以将重新声明为-如果您的数字是偶数并且数字大于2,则它不能是质数。 num % 2
returns the remainder of the expression。因此5 % 2
=> 1,而4 % 2
=>0。所有偶数都可以被2整除,因此不是素数-任何可被2整除的数字都不是2也不是质数。
for i in range(3, int(math.sqrt(num)) +1, 2):
可以将重新设置为以3(第一个整数> 2)开头的范围内的选择号,以您要检查其是否为质数(num
)的数字的平方根结束,并且stepping
乘2。步进2表示从3开始时将跳过所有偶数。作为注释(reference),任何i
都应大于2的平方根。 num
的因数将在3到数字的平方根之间-因此您可以在该点停止生成数字。
if num % i == 0:
可以像测试偶数一样重述。这将从范围内的数字(数字i
)开始,并将其划分为要测试的数字。如果可以不加余数地输入数字,则该数字不是素数。对于两个if语句-如果数字被平均除(结果模数为0),则代码将return False
表示数字不是素数。如果该数字不能除以偶数,也不能除以3与该数字的平方根之间的奇数,则代码将为return True
--表示该数字为质数。