鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: 冬雪雪冬

[技术交流] Python:每日一题 205

[复制链接]
发表于 2018-10-17 09:51:09 | 显示全部楼层
凌九霄 发表于 2018-10-17 09:38
首先这个方式确实简洁,效率大概是我那个的2倍多点。我相信,随着范围的增大,速度的优势也会更大。缺 ...

是的。python语言本来就是要牺牲效率而使代码优雅简洁。如果要解决大的数据肯定用python很不科学,这个必须承认。我这个只是匆忙中写的,没有优化。希望只是和大家交流一下。多指教了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-6 23:45:13 | 显示全部楼层
凌九霄 发表于 2018-10-17 09:38
首先这个方式确实简洁,效率大概是我那个的2倍多点。我相信,随着范围的增大,速度的优势也会更大。缺 ...

#筛选法求素数
    def getprimes(n):
        l=[1,1,1]+[i%2 for i in range(3,n+1)]
        i=3
        while i*i<=n:
            if l[i]!=0:
                j=i*i
                while n>=j:
                    l[j]=0
                    j+=2*i
            i+=2
        return [2]+[i for i in range(3,n+1,2) if l[i]!=0]
    import time
    start=time.clock()  
    print(getprimes(10000000))
    print('时间:%f' % (time.clock()-start))  

#这个是加入算法的高效快速的查找方法,1千万内的素数大概只要10秒左右吧,1个亿大概200秒左右吧。参考一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-7 09:18:43 | 显示全部楼层
过来顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-7 16:35:39 | 显示全部楼层
本帖最后由 凌九霄 于 2018-11-7 17:30 编辑
喜欢吃菠菜 发表于 2018-11-6 23:45
#筛选法求素数
    def getprimes(n):
        l=[1,1,1]+


嘿嘿,还真执着啊,自己有运行过么?或者只注意到时间?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-24 11:31:07 | 显示全部楼层
这是我写的程序~~不知还能否在压缩运行时间
def sieve(num=200):
        fulllist=list(range(2,num+1))
        result=[]
        while fulllist:
                result.append(fulllist.pop(0))
                for i in fulllist:
                        if i%result[-1]==0:
                                fulllist.remove(i)
        return result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-24 13:08:22 | 显示全部楼层
n = 200
num = [i for i in range(2,n)]   #生成2到n之间的数字

for i in num:       #遍历num列表
    #因为质数的因数只有1和本身,所以从2开始。最小质数是2,x的最大值是n//2
    for x in range(2,n//2):
        if i*x in num:
            #print(i*x, '在内num列表中')
            num.remove(i*x)
print('num =',num)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 07:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表