python - 尝试筛选 Eratosthenes python 函数
问题描述
我对 python/编程很陌生,我一直在尝试对 Eratosthenes 函数程序进行筛选,但是似乎我的代码输出了不希望的结果。此外,对此我也不知道程序如何输出该特定解决方案。可能有人请帮助我并解释当前的输出以及我应该如何着手和修复这个程序,以便它可以打印素数。
亲切的问候!
#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)
#CURRENT OUTPUT
#[]
#[]
#[4]
#[4, 5]
#[4, 5, 6]
#[4, 5, 6, 7]
#[4, 5, 6, 7, 8]
#[4, 5, 6, 7, 8, 9, 9]
#[4, 5, 6, 7, 8, 9, 9, 10, 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)
推荐阅读
- sql - 在 SQL 中计算出现次数
- python - win32gui.SetForegroundWindow(handle) 不在循环中工作
- flutter - 如何在颤振/飞镖中实现加密(3des)
- android - 找不到 com.google.android.gms.internal.zzbgl 无法访问 zzbgl 类文件
- javascript - 如果单元格内容匹配,如何使用javascript更改表格中单元格的背景颜色
- r - 如何从另一个反应性 Rshiny 数据帧访问数据表?
- javascript - Javascript 在本地主机上找不到 php 文件
- kubernetes - Istio:将主机的权限委托给特定的命名空间
- class - Kotlin 泛型类
- android - 获取当前 Activity (Android) 中可见的任何 AlertDialog 实例的 View 对象