尝试筛选 Eratosthenes python 函数

问题描述

我对 python/编程很陌生,我一直在尝试对 Eratosthenes 函数程序进行筛选,但似乎我的代码输出了不想要的结果。此外,对此我也不知道该程序如何输出该特定解决方案。请有人帮助我解释当前的输出以及我应该如何修复这个程序,以便它可以打印质数。

亲切的问候!

export function createOrderMock(): Order {
  return new Order({ ...props });. // Will use a shallow copy of props
}
#Sieve Code 

import math
numbers = []

def sieve_method(n):
    global numbers
    for n in range(2,n + 1):
        for J in range (2,int(math.sqrt(n))+1):
            if J in numbers:
                multiple = n*J 
                while multiple <= n:
                    if multiple in numbers:
                        numbers.remove(n)
                J += multiple
            numbers.append(n)
        print(numbers) 

sieve_method(10)

解决方法

好吧,由于这不是 Erathnostenes 筛分的真正实现,而只是一个素数生成函数(不完全是筛分过程),这里是一个真正的筛分算法代码:

def sieve(n):
   sieved = list(range(2,n+1))
   for n in sieved:
       for J in range(2,n+1):
           if n%J==0:
               sieved.remove(n)
               print(sieved)
               break
       print(sieved)