我正在尝试在指定范围内找到素数。我们得到以下结论:
•初始化: - 创建一个长度为n + 1的布尔值列表(我们希望检查素数最多为n的值;我们不会对位置0和1做任何事情,但是这样更容易索引),这些都是最初是真的 - 将计数器初始化为2 - 初始化结果的空列表
•只要上面定义的计数器小于或等于n,就启动一个while循环 - 将计数器的当前值添加到结果列表中 - 对于当前计数器值的所有倍数< = n,将布尔列表的值设置为False;你可以用while或for循环来做这件事。例如,如果i = 3且n = 10,则应将列表的元素6和9设置为False - 向前搜索下一个可能的素数值: *首先将计数器递增1 *当计数器小于或等于n和布尔值的对应元素时 list为False,将计数器增加1。 •返回结果列表
def eratos(n):
"""function_docstring"""
prime=[True]*(n+1)
# 0 and 1 are not considered prime.
count=2
result=list()
while count<=n:
count+=result
while count<=n:
prime=False
count+=1
while count<=n:
n=False
count+=1
print(eratos(1)==[])=True *i keep on getting False*
我似乎无法弄清楚我哪里出错了。