埃拉托斯特涅斯筛蟒

2024-04-23 18:00:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我在找一个特定范围内的素数。我们得到以下信息:

•初始化: –创建一个长度为n+1的布尔值列表(我们希望检查包含n的素数;我们不会对位置0和1执行任何操作,但这样索引更容易),这些值最初都是真的 –将计数器初始化为2 –初始化结果的空列表

•启动while循环,只要上面定义的计数器小于或等于n,该循环就会运行 –将计数器的当前值添加到结果列表中 –对于当前计数器值的所有倍数,将布尔列表的值设置为False<;=n;您可以使用while或for循环来执行此操作。例如,如果i=3且n=10,则应将列表的元素6和9设置为False –向前搜索下一个可能的素数值: *首先将计数器递增1 *当计数器小于或等于n且布尔值的相应元素 如果列表为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* 

我似乎不知道自己哪里出了问题。你知道吗


Tags: lt信息falsetrue元素列表定义count