问题描述
我对 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)