好的我正在尝试制作Eratosthenes的筛子。我最初使用这个代码。使用布尔列表的Eratosthenes的筛子
def shake(n):
n == 2 # initializes 2 since it's first prime
prime = [] # makes empty list
for i in range(2, n+1): # takes range from 2 to N
if i not in prime:
print (i)
for i in range(i*i, n+1, i):
prime.append(i)
shake(100)
它打印出一个列表,但我被告知我做错了。我被告知需要传递一个布尔值列表,并返回一个素数列表。其中的逻辑是我让布尔的列表,从长度为N的输入我做想出如何做一个清单布尔本
def shake(alist)
N = 10
alist = [True for _ in range(N + 1)]
,如果我使用的是打印它给了我这个。
[True True True True True True True True True True True]
我需要能够真正的前两个值变成假的,然后离开第三个“真”是真正的价值,但把两个假倍数,然后做同样的逻辑3,5,7等,直到我耗尽名单。然后,我需要能够以某种方式扫描剩余的真值,并将这些数字列表作为我的素数打印出来。我真的迷失了,因为我不知道如何将“真”列表的值更改为假,以及如何在循环中做到这一点,以及如何知道何时停止。任何帮助,将不胜感激。
我有一个问题,我不能导入数学,有没有办法处理这个没有做到这一点? – user3456233
'def sqrt(n):return n ** 0.5' – Broseph