如何算算一万亿以内的素数
某天,偶突发奇想,我们能不能自己求出一万亿以内的全部素数!
其实算法挺简单的,将1至一万亿的数都创建出来.....
找到最小的素数....2....将2的倍数都删掉...
再找到比2大的最小的素数...3....将3的倍数都删掉.....
直至找到 比Math.sqrt(1000000000000L)=1000000小的最大的素数
-----
然而这只是理论上可行!!!
首先,一万亿已经超出了int的最大范围,所以我们只能用long
其次,JVM也不允许我们一次将一万亿个long类型的数据写入内存,别说一万亿,连一千万都够呛!
所以,只能分段算喽!
此外,还隐藏了几点.......如果能到10楼或以上,我会把隐藏的几点自己摸索的诀窍分享的哦!
其实算法挺简单的,将1至一万亿的数都创建出来.....
找到最小的素数....2....将2的倍数都删掉...
再找到比2大的最小的素数...3....将3的倍数都删掉.....
直至找到 比Math.sqrt(1000000000000L)=1000000小的最大的素数
-----
然而这只是理论上可行!!!
首先,一万亿已经超出了int的最大范围,所以我们只能用long
其次,JVM也不允许我们一次将一万亿个long类型的数据写入内存,别说一万亿,连一千万都够呛!
所以,只能分段算喽!
此外,还隐藏了几点.......如果能到10楼或以上,我会把隐藏的几点自己摸索的诀窍分享的哦!
...全文
相关推荐
筛选一万亿位的素数,费马最小定理
这个原理可以用来筛选一万亿位的素数。为了实现筛选一万亿位的素数,我们可以将筛选过程分为两个步骤。第一步,我们需要筛选 100 万以内的素数。这个步骤可以使用费马最小定理来实现。
Python求出0~100以内的所有素数
### Python求出0~100以内的所有素数#### 背景与概念在数学领域,素数(也称质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。
一万亿内的素数
根据给定文件的信息,我们可以提炼出与“一万亿内的素数”相关的算法和技术知识点。
使用c语言判断100以内素数的示例(c语言求素数)
在C语言中,判断一个数是否为素数(质数)是常见的算法问题。素数是大于1且只有1和其本身两个正因数的自然数。在这个示例中,我们将学习如何用C语言编写一个程序来判断100以内的整数是否为素数。
求出1000以内的素数及素数的个数
本篇文章将深入解析如何利用C++语言求解1000以内的所有素数及其数量,同时探讨该程序背后的算法原理。


非技术区
