打印素数

目的

打印$2^5、2^{10}、···、2^{32}$ 多个范围内素数列表.

设计思路

  • 编程语言:C(底层语言,耗时最少)
  • 运行系统:Windows 10
  • 方法:埃拉托斯特尼筛法(将每个素数的倍数标记为合数,时间和空间利用率强于试除法)

程序运行结果

理论上可以打印$2^{64}$以内的所有素数到prime文件,但是由于个人电脑的性能问题,只打印到了$2^{33}$ .

  1. 打印$2^5$以内的所有质数,耗时0.000997s;

  2. 打印$2^{10}$以内的所有质数,耗时0.000998s;

  3. 打印$2^{15}$以内的所有质数,耗时0.001995s;

  4. 打印$2^{20}$以内的所有质数,耗时0.031910s;

  5. 打印$2^{25}$以内的所有质数,耗时1.316479s;

  6. 打印$2^{32}$以内的所有质数,耗时155.330692s,生成的prime文件大小为2.02 GB;

  7. 打印$2^{33}$以内的所有质数,耗时284.451798s,生成prime文件大小达到3.97GB,打印过程中16G内存,使用率达到89%;

程序源代码

https://github.com/Leeyuxun/Print-Prime

本文标题: 打印素数

文章作者: 李钰璕

发布时间: 2020年04月20日 - 16:56

最后更新: 2020年04月20日 - 17:38

原始链接: https://www.leeyuxun.icu/打印素数.html

许可协议: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议,转载请注明出处!