Advertisement

一亿亿以内最快的素数筛法

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本研究提出了一种在十亿级别数据内实现最快素数筛选的方法,大幅提升了大范围内寻找素数的效率和速度。 我开发了一种计算10^18范围内素数的筛法程序,在国内速度最快(如果你有比我更快的方法,请告诉我,我会奖励你500元乘以你的方法快出的倍数)。该程序比国外的primesieve稍慢20%。整个程序由3000行C++代码组成,并通过了10多个优化点。 使用时非常简单,只需输入两个数值即可得到素数个数: - 输入[command or number] : 1 e10 s8PI [1E0, 1E0+9999999999] 得到结果为455052511,并用时2750毫秒。 - 输入[command or number] : 1e16 1e16+1e9 s10PI [1E16, 1E16+1000000000] 得到结果为27153205,并用时1556毫秒。 - 输入[command or number] : 1e18 1e9PI [1E18, 1E18+1000000000] 得到结果为24127085,第一次用时3351毫秒;第二次测试得到同样结果但耗时稍长为3577毫秒。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 亿亿
    优质
    本研究提出了一种在十亿级别数据内实现最快素数筛选的方法,大幅提升了大范围内寻找素数的效率和速度。 我开发了一种计算10^18范围内素数的筛法程序,在国内速度最快(如果你有比我更快的方法,请告诉我,我会奖励你500元乘以你的方法快出的倍数)。该程序比国外的primesieve稍慢20%。整个程序由3000行C++代码组成,并通过了10多个优化点。 使用时非常简单,只需输入两个数值即可得到素数个数: - 输入[command or number] : 1 e10 s8PI [1E0, 1E0+9999999999] 得到结果为455052511,并用时2750毫秒。 - 输入[command or number] : 1e16 1e16+1e9 s10PI [1E16, 1E16+1000000000] 得到结果为27153205,并用时1556毫秒。 - 输入[command or number] : 1e18 1e9PI [1E18, 1E18+1000000000] 得到结果为24127085,第一次用时3351毫秒;第二次测试得到同样结果但耗时稍长为3577毫秒。
  • 埃氏0.8秒找出亿所有并计
    优质
    本项目采用高效的埃拉托斯特尼筛法算法,在0.8秒内实现了对一亿以内全部素数的有效筛选与统计,展示了算法优化在大数据处理中的强大能力。 埃氏筛法可以在0.8秒内搜索出1亿以内的素数并统计个数。该算法用于标记、统计并输出1亿以内素数的个数及耗时。虽然网络上有很多类似的算法,但使用Fortran编写的版本较少见,尤其是在中文网站上更是少见。本代码通过减少重复标记提高了效率。
  • 高效选算(2秒计算42亿所有
    优质
    本项目提出了一种高效的素数筛选算法,在短短两秒内能完成对42亿以内全部素数的快速准确计算。该方法在时间和空间复杂度上具有显著优势,为大规模数据处理提供了有力工具。 在联想T420笔记本(CPU:Intel(R) Core(TM) i7-2640M,内存:8GB)上运行32位范围内的素数筛程序,包括两个版本: 1. sieveAndReturnAll: 花费时间 3,382 毫秒,发现并保存了203,280,221个素数。 2. sieveAndReturnShort: 运行时间为 1,862 毫秒,同样发现了203,280,221个素数,但仅保存了其中的6,542个。
  • 高效(非线性选),1.6秒计算亿全部
    优质
    本作品提出了一种高效的非线性筛选算法,能够在1.6秒内完成一亿以内所有素数的计算,显著提升了大范围内的素数生成效率。 革命性素数算法:计算1亿以内的素数只需1.6秒。该算法与之前发布的C#版本基本相同(可在相关资源下载中找到),由我的朋友杨力在两年前设计,时间复杂度为O(n)。我对数据结构进行了革新性的改进,将空间复杂度从2个O(n)降至约1/6的O(n),并且程序描述更为简洁。现采用C++实现该算法,我认为此算法效率已经达到了素数计算的极限水平。需要注意的是,在创建内存时不要超过物理内存大小,以避免性能下降。
  • 寻找亿回文(质
    优质
    本项目旨在探索并记录所有一亿以内的数字中既为素数又符合回文结构的独特数学现象,深入挖掘这些数字背后的神秘规律与美学价值。 求一亿以内的回文素数(质数)。 直接先找出所有质数再判断是否为回文数的方法效率较低;因此可以考虑构造回文数后再进行质性检验。 偶位长度的回文数字都可以被11整除,这意味着除了11以外的所有这类数字都是合数。 观察这些偶位的回文数字时会发现,提取出所有奇数位置上的数字后与提取出所有偶数位置上的数字正好是相反顺序排列。 因此,对于这样的回文数组来说,在偶数和奇数位置上各自的总和相等,其差值为零。既然0可以被11整除,则这个回文数字也能被11整除。 例如:以 1331 这个例子来看,提取出的奇位(包括首位)上的数字是 1 和 3 ,而偶数位置上的则是 3 和 1 。显然前者与后者顺序相反。 或者用更数学化的方式来表示这一规律: an…a2a1a1a2…an 这样的结构可以改写为 (首尾两两依次配对): an*(10^(2n-1)+1)+...+a2*(10^(3)+1)*10^(n-2)+a1*(以此类推),从而进一步证明这一规律。
  • 使用C语言实现求解亿所有-附带资源
    优质
    本项目采用C语言编程技术,高效地运用筛选法计算并输出了一亿以内的全部素数。项目提供了源代码及相关资源下载链接,便于学习和研究。 用C语言实现素数筛法获取一亿(100000000)以内的全部素数。
  • 亿(100000000)表.rar
    优质
    本资源提供了一亿以内的所有质数列表,适用于数学研究、密码学及编程测试等领域,方便用户下载和应用。 一亿以内的质数表已经整理完毕。
  • 高效求,1秒找出1亿所有
    优质
    本项目提出了一种高效的素数计算算法,在1秒内能够准确地找出一亿以内的全部素数,为数学研究和密码学应用提供强大支持。 最快的求素数算法能在0.3秒内找出1亿以下的所有素数,并在53毫秒内找到1千万以下的664579个素数。
  • Java中速获取亿前100个(3秒完成)
    优质
    本教程介绍了一种高效算法,在Java编程语言中实现快速获取大数量级(如一亿)数列的前100项,并确保整个过程在三秒钟之内完成,为需要处理大规模数据的应用提供了优化思路。 Java程序能在三秒内从一亿个数字中快速获取前100个数字,这里分享给大家。
  • 点后亿π值
    优质
    简介:探索圆周率π的小数点后一亿位数值,展现数学之美与计算极限。这一浩瀚数字序列蕴含无穷奥秘,激发人们对宇宙秩序的思考。 π值(小数点后一亿位)这一数值代表了圆周率的极端精确度,在数学领域具有重要意义。计算到如此庞大的数字位置展示了现代计算机技术和算法设计的进步,同时也为科学研究提供了宝贵的资源。此类数据在理论研究、随机性测试以及密码学等领域有着广泛的应用价值。