首页 > 解决方案 > python中的素数代码如何工作?

问题描述

def is_prime(num):
    for i in range(2,num):
        if (num % i) == 0:
            return False
    return True

def all_primes(num):
    primes = []
    for n in range(2,num+1):
        if is_prime(n) is True:
            primes.append(n)
    return primes

num = int(input("Enter upper limit: "))
primes = all_primes(num)
print(primes)

它是怎么发生的...明白的是如果我输入 10 它将是 10%2= 5...余数是 0 所以它跳到下一个 9%2 = True 有余数。

它移动到下一个 9%3 余数是 0 所以它跳到 8% ...,然后是 7 .......但是我不明白的是 7 如果它检查到 7%7 ==0 那么如何它添加了 7 作为质数???

我很混乱。

感谢您的任何评论

标签: python

解决方案


但我不明白的是 7 如果检查到 7%7 ==0

来自以下行的range 函数:

for i in range(2, num):

2num - 1

因此,该range() 函数不包括结果中的最后一个(停止)数字。


推荐阅读