首页 > 编程语言 >Python实现素数筛选(欧式筛法)

Python实现素数筛选(欧式筛法)

时间:2023-02-23 23:03:33浏览次数:40  
标签:prime 筛法 Python flag 素数 欧式

素数筛选之欧式筛法:用合数与素数乘法,素数与素数的乘法去筛将来的数,同时当这个数被更小的素数整除,就不必再用这个数去运算,保证每个合数只会被它的最小质因数筛去,因此每个数只会被筛一次。 Python实现欧式筛法的代码如下所示

# 选出1-n的所有素数
def o_filter(n):
    flag = [1] * (n + 1)
    prime = []
    len = 0
    flag[0], flag[1] = 0, 0
    for i in range(2,n+1):
        if flag[i] == 1:
            prime.append(i)
            len += 1
        for j in range(0, n + 1):
            if i*prime[j] <= n:
                flag[i*prime[j]] = 0
                if i % prime[j] == 0:
                    break
            else:
                break
    return prime
if __name__ == "__main__":        
    print(o_filter(100))            

标签:prime,筛法,Python,flag,素数,欧式
From: https://blog.51cto.com/u_15944471/6082006

相关文章

  • Python中的魔术方法大全
    魔术方法一种特殊的方法而已特点不需要人工调用,在特定时刻自动触发执行魔术方法种类1.__init__初始化方法*******触发时机:实例化对象之后触发作用:为对象添加对象的所......
  • Python 异步: 等待任务集合(11)
    我们可以通过asyncio.wait()函数等待异步任务完成。可以等待不同的条件,例如所有任务完成、第一个任务完成以及第一个任务因异常而失败。让我们仔细看看。1.什么是asy......
  • python爬虫学习——bs4
    bs4将一个复杂的html文档转化为一个复杂的树形结构,每个节点都是python对象,所有对象可以分为四种:Tag、NavigableString、BeautifulSoup、Commentfrombs4importBeautifu......
  • python numpy 中的冒号
    python中冒号实际上有两个意思:1.全部选择matrix1[1,:]表示matrix的第1行的所有元素matrix1[:,1]表示matrix的第1列的所有元素2.表示区间,含左不含右matrix1[1,0:......
  • python 异常处理
    异常异常处理是一种艺术,一旦你掌握,会授予你无穷的力量。我将要向你展示我们能处理异常的一些方式。最基本的术语里我们知道了try/except从句。可能触发异常产生的代码会......
  • pdf2docx:可将 PDF 转换成 docx 文件的 Python 库
    pdf2docx:https://github.com/dothinking/pdf2docx 可将PDF转换成docx文件的Python库。frompdf2docximportparsepdf_file='/path/to/sample.pdf'docx_fi......
  • python各种推导式(comprehensions)
    各种推导式(comprehensions)推导式(又称解析式)是Python的一种独有特性,如果我被迫离开了它,我会非常想念。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。共......
  • 简单友好的 Python 任务调度库
    schedule:https://github.com/dbader/schedule该项目人性化的API设计,让开发者仅用几行代码就能轻松实现定时任务。它不依赖任何第三方库,全部代码也就一个文件800多......
  • python | 使用PIL压缩图片并使用字节流输出
    python|使用PIL压缩图片并使用字节流输出因为自己服务器上的博客流量比较小,所以加了这个用来压缩图片,不改变图片大小,将图像质量降低。直接丢代码了:importosfromio......
  • python基础知识100题-面试
    1、一行代码实现1--100之和#利用sum()函数求和#res=sum(range(1,101))#print(res)#50502、如何在一个函数内部修改全局变量#利用global修改全局变量'''a=......