问题描述
我目前正在研究我们在某节课中学到的所有算法,试图了解每个算法的作用和方式。然而,我对我们的 Eratosthenes 筛子中的某一行有点无知:
def sieve(n):
primes = [] # list
is_prime = [False,False]+[True]*(n-1) # how does a list [false,false,true,true....] do anything?
for p in range(2,n+1): #number from 2 to n
if is_prime[p]: #how does this same list finds out if it is a prime number?
primes.append(p) # adds p the list
for i in range(p**2,n+1,p): # goes from the square of p to n,in p long steps
is_prime[i]=False # those found obviously aren't prime
print(primes) # prints the list
这是一个非常简单的算法,它的基本函数适用于我不理解的东西,所以这有点问题。有人请向我解释它的作用,谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)