Trial division

试除法求最小N个素数是一个经典的算法。

可以使用素数分类的性质来加快计算的速度。

除了2以外,素数只能是2n+1,n>=1。

除了2、3和5以外,素数只能是6n+1或6n+5,n>=1。

/** 试除法计算最小的N个素数** 素数中除了2以外,均为奇数。* 可以用试除法从奇数中挑选出最小的N个素数。** 另外,<span style="color: rgb(0, 128, 0);">除了2、3和5之外,</span>素数只可能是6n+1或6n+5,n>=1。* 所有有另外一种计算方法,会稍微快一些。*/#include <stdio.h>
#include <math.h>#define N   25int prime[N] = {2, 3, 5};void output_result(void);void primes()
{int n = 3;int i = 2;for(;;) {n += 2;int j, q =sqrt(n);for(j=1; prime[j]<=q; j++)if(n % prime[j] == 0)break;if(prime[j] > q)prime[i++] = n;if(i == N)break;}
}void primes2()
{int n1=1, n2 = 5;int i = 3;for(;;) {n1 += 6;int j, q =sqrt(n1);for(j=1; prime[j]<=q; j++)if(n1 % prime[j] == 0)break;if(prime[j] > q)prime[i++] = n1;if(i == N)break;n2 += 6;q =sqrt(n2);for(j=1; prime[j]<=q; j++)if(n2 % prime[j] == 0)break;if(prime[j] > q)prime[i++] = n2;if(i == N)break;}
}int main(void)
{primes();output_result();primes2();output_result();return 0;
}void output_result()
{int i;for(i=0; i<N; i++)printf("%d:%d\n", i+1, prime[i]);
}



试除法计算最小的N个素数相关推荐

  1. 试除法求最小N个素数之二

    Trial division 试除法求最小N个素数是一个经典的算法. 这个算法不同于前一个版本<试除法求最小N个素数>的方法,也是一个比较快速的方法. 这个算法考虑以下两点: 1.偶数中只 ...

  2. 素数筛——试除法——埃式筛——欧啦筛

    先代码奉上: 试除法 #include<iostream> #include<cmath> using namespace std;bool isprime(int n) {i ...

  3. 素数-试除法和埃式筛选法模板

    试除法: bool is_prime(int n) {if (n <= 1) return false;for (int i = 2;i<=sqrt(n);i++)//这样写更好!if ( ...

  4. 筛选法与试除法 判断素数

    素数的求解方法 第一种:试除法 第二种:筛选法 ------试除法------- 顾名思义:求一个数X是不是素数,就试用小于x大于1区间的自然数,只要有一个能整除,那么x就不是素数,否则就是. 以输出 ...

  5. 【如何求素数】试除法讲解

    试除法 1.素数的定义 2.for套嵌使用求解素数 3.试除法的算法优化 1.素数的定义 素数又称为质数,指的是在大于1的整数中 只能被1和这个数本身整除的数. 在了解了素数的定义之后,我们如何用C语 ...

  6. C语言判断素数方法之试除法

    素数又称质数,指的是一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数,如2,3,5,7,11,13,17-.接下来让我们以打印区间[a,b]内所有素数为目标来探究一种判断素数 ...

  7. AcWing 866. 试除法判定质数(素数判定)

    题目连接 https://www.acwing.com/problem/content/description/868/ 思路 对于一个数来说我们判断其是否有除1和本身外的因子实际上只需要从[2,x] ...

  8. 求质数算法的N种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在CSD ...

  9. 求质数算法的 N 种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在 CS ...

最新文章

  1. 皮一皮:感受下什么叫瑟瑟发抖的寒冬...
  2. Linux 组调度学习
  3. Spring IOC 容器源码分析 - 获取单例 bean
  4. machit r语言_机器学习应该准备哪些数学预备知识?
  5. 医生c语言测试卷b卷的答案,合肥工业大学C语言期中测试题_B卷
  6. php 查找所有函数,PHP(方法 函数 循环 和 数组 查找)
  7. HTML 最常用的标记
  8. JAVA线程池的创建
  9. 基于Socket的UDP和TCP编程介绍-转
  10. 求字符串中对称的子字符串的最大长度
  11. atitit 高扩展性解决方案.docx
  12. 多说评论系统API调用和本地身份说明(JWT)
  13. 程序员应该怎么学数学
  14. 数据结构C语言版第二版答案 严蔚敏 李冬梅 吴伟民 编著
  15. 计算机组成码距,计算机组成原理:2.3.2 纠错码原理.ppt
  16. python编程控制安捷伦电源_agilent_n6700_series 安捷伦电源 5,labview例程 267万源代码下载- www.pudn.com...
  17. CSS篇十六——盒子模型之边框
  18. jsp学习—虚拟主机
  19. php薄饼,薄饼的做法大全
  20. js对节点 属性的操作

热门文章

  1. 鼓励玩家自创,大量的UGC能为手游续命吗?
  2. Web环境下使用Starling出现的问题收集整理
  3. 企业微信应用设置可信域名_怎么设置企业微信朋友圈功能?企业微信朋友圈功能有哪些限制?...
  4. IDEA使用和实用小技巧
  5. doris同步作业配置参数修改和注意事项
  6. Python 之 模块和包
  7. Python 之 循环
  8. java 传xml js_JavaScript实现的XML与JSON互转功能详解
  9. electronjs设置宽度_Js操作DOM元素及获取浏览器高宽的简单方法
  10. 剑指offer面试题32 - II. 从上到下打印二叉树 II(二叉树)(BFS)