如何算算一万亿以内的素数

于金龙 于金龙 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
某天,偶突发奇想,我们能不能自己求出一万亿以内的全部素数!

其实算法挺简单的,将1至一万亿的数都创建出来.....
找到最小的素数....2....将2的倍数都删掉...
再找到比2大的最小的素数...3....将3的倍数都删掉.....
直至找到 比Math.sqrt(1000000000000L)=1000000小的最大的素数

-----
然而这只是理论上可行!!!

首先,一万亿已经超出了int的最大范围,所以我们只能用long
其次,JVM也不允许我们一次将一万亿个long类型的数据写入内存,别说一万亿,连一千万都够呛!
所以,只能分段算喽!

此外,还隐藏了几点.......如果能到10楼或以上,我会把隐藏的几点自己摸索的诀窍分享的哦!
...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
于金龙
非技术区 23,404 成员 70,506 内容