java吧 关注:1,240,922贴子:12,714,724

大佬们,怎么找出1-100000000之间所有的质数,速度太

只看楼主收藏回复

大佬们,怎么找出1-100000000之间所有的质数,速度太慢了


IP属地:湖南来自Android客户端1楼2021-11-15 17:02回复
    加我微信2137504624有偿解决


    IP属地:浙江来自Android客户端3楼2021-11-15 17:16
    收起回复
      扣1639313156


      IP属地:河北来自Android客户端4楼2021-11-15 17:39
      回复
        这才一亿啊,你太看不起计算机了吧


        IP属地:浙江5楼2021-11-15 17:49
        收起回复
          线性筛


          IP属地:北京来自Android客户端6楼2021-11-15 18:22
          收起回复
            百度“素数筛选”。大概就是开一个大小为一亿的布尔数组用于标记合数。从小到大遍历一个数i,把i的倍数标记为合数(i本身当然不算)。最后没有被标记的就是质数。具体优化百度代码吧。


            IP属地:广东来自Android客户端7楼2021-11-15 20:23
            收起回复
              百度一下 埃式筛


              IP属地:浙江来自iPhone客户端8楼2021-11-15 20:25
              收起回复
                多线程


                IP属地:广东来自Android客户端9楼2021-11-15 20:57
                回复
                  优化算法,用性能比较好的语言写,


                  IP属地:广东来自Android客户端11楼2021-11-15 22:56
                  回复
                    for循环每一个数和比他大的倍数,遇到这些后跳过


                    IP属地:陕西来自Android客户端12楼2021-11-15 23:07
                    回复
                      这样理解,我求所有的非质数不就得了。怎么求非质数呢。2质数,2的23456倍就不是。3质数3的3456倍就不是。4因为2的2倍就是4,所以4不管……5的5678倍都排除,6因为是2的3倍已经被排除了……很简单


                      IP属地:陕西来自Android客户端13楼2021-11-15 23:16
                      收起回复
                        for i=2----根号下100000
                        if list not contain i then
                        for j=i----100000/i
                        list .add i*j
                        ans .add i


                        IP属地:陕西来自Android客户端14楼2021-11-15 23:22
                        回复
                          欧拉筛


                          IP属地:广东来自iPhone客户端16楼2021-11-16 01:45
                          回复
                            百度素性检验


                            IP属地:四川来自Android客户端17楼2021-11-16 03:41
                            回复
                              先写好素素表,然后读一下


                              IP属地:上海来自Android客户端18楼2021-11-16 06:01
                              收起回复