Python/数学素数查询

Python/数学素数查询,python,math,Python,Math,需要帮助理解用哀叹的术语推断一个数字是素数的数学。详细的分类将非常有用 如下所示: if num % 2 == 0 and num > 2: 可以重述为-如果您的数字是偶数且大于2,则不能是素数。数值%2。因此5%2=>1而4%2=>0。所有偶数都可以被2整除,因此不是素数——任何被2整除的小于2的数都不是素数 for i in range(3, int(math.sqrt(num)) +1, 2): 可以重述为从3开始(第一个整数>2)的范围内的拣货编号,以检查该编号是否为素数(nu

需要帮助理解用哀叹的术语推断一个数字是素数的数学。详细的分类将非常有用

如下所示:

if num % 2 == 0 and num > 2:
可以重述为-如果您的数字是偶数且大于2,则不能是素数。
数值%2
。因此
5%2
=>1而
4%2
=>0。所有偶数都可以被2整除,因此不是素数——任何被2整除的小于2的数都不是素数

for i in range(3, int(math.sqrt(num)) +1, 2):
可以重述为从3开始(第一个整数>2)的范围内的拣货编号,以检查该编号是否为素数(
num
)的平方根结束,然后按2步进。步进2意味着从3开始时将跳过所有偶数。请注意(),任何大于
num
的平方根的
i
都会有一个介于3和您的数字平方根之间的因子-因此您可以在该点停止生成数字

if num % i == 0:

可以重复,类似于偶数测试。这将从范围(数字
i
)中获取数字,并将其划分为您正在测试的数字。如果它可以进入一个没有余数的数,那么这个数就不是素数。对于这两个if语句,如果数字被平均分割(结果为模数0),则代码将
返回False
,表示数字不是素数。如果数字不能被偶数除,也不能被3和数字平方根之间的奇数除,则代码将
返回True
——表示该数字为素数。

请编辑问题并将代码格式设置为post,因此第二种方法会抛出所有大于2的偶数,因为除了1之外,还有2个因素。它还知道,如果它在超过数字的平方根之前没有找到因子(除1外),它将不会找到因子(除数字本身外),因为它需要一个小于数字平方根的伴随因子。但基本逻辑是代码通过可能的因子运行,如果它将数字除以它们得到0的余数,它知道它找到了一个因子,因此该数字不是素数。非常感谢。感谢您的详细解释。没问题,但您需要在浏览器中实际键入代码,而不仅仅是放大图片…:-)如果这回答了你的问题,你可以接受它作为答案。