试除法计算最小的N个素数
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个素数相关推荐
- 试除法求最小N个素数之二
Trial division 试除法求最小N个素数是一个经典的算法. 这个算法不同于前一个版本<试除法求最小N个素数>的方法,也是一个比较快速的方法. 这个算法考虑以下两点: 1.偶数中只 ...
- 素数筛——试除法——埃式筛——欧啦筛
先代码奉上: 试除法 #include<iostream> #include<cmath> using namespace std;bool isprime(int n) {i ...
- 素数-试除法和埃式筛选法模板
试除法: bool is_prime(int n) {if (n <= 1) return false;for (int i = 2;i<=sqrt(n);i++)//这样写更好!if ( ...
- 筛选法与试除法 判断素数
素数的求解方法 第一种:试除法 第二种:筛选法 ------试除法------- 顾名思义:求一个数X是不是素数,就试用小于x大于1区间的自然数,只要有一个能整除,那么x就不是素数,否则就是. 以输出 ...
- 【如何求素数】试除法讲解
试除法 1.素数的定义 2.for套嵌使用求解素数 3.试除法的算法优化 1.素数的定义 素数又称为质数,指的是在大于1的整数中 只能被1和这个数本身整除的数. 在了解了素数的定义之后,我们如何用C语 ...
- C语言判断素数方法之试除法
素数又称质数,指的是一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数,如2,3,5,7,11,13,17-.接下来让我们以打印区间[a,b]内所有素数为目标来探究一种判断素数 ...
- AcWing 866. 试除法判定质数(素数判定)
题目连接 https://www.acwing.com/problem/content/description/868/ 思路 对于一个数来说我们判断其是否有除1和本身外的因子实际上只需要从[2,x] ...
- 求质数算法的N种境界[1] - 试除法和初级筛法
★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在CSD ...
- 求质数算法的 N 种境界[1] - 试除法和初级筛法
★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在 CS ...
最新文章
- 皮一皮:感受下什么叫瑟瑟发抖的寒冬...
- Linux 组调度学习
- Spring IOC 容器源码分析 - 获取单例 bean
- machit r语言_机器学习应该准备哪些数学预备知识?
- 医生c语言测试卷b卷的答案,合肥工业大学C语言期中测试题_B卷
- php 查找所有函数,PHP(方法 函数 循环 和 数组 查找)
- HTML 最常用的标记
- JAVA线程池的创建
- 基于Socket的UDP和TCP编程介绍-转
- 求字符串中对称的子字符串的最大长度
- atitit 高扩展性解决方案.docx
- 多说评论系统API调用和本地身份说明(JWT)
- 程序员应该怎么学数学
- 数据结构C语言版第二版答案 严蔚敏 李冬梅 吴伟民 编著
- 计算机组成码距,计算机组成原理:2.3.2 纠错码原理.ppt
- python编程控制安捷伦电源_agilent_n6700_series 安捷伦电源 5,labview例程 267万源代码下载- www.pudn.com...
- CSS篇十六——盒子模型之边框
- jsp学习—虚拟主机
- php薄饼,薄饼的做法大全
- js对节点 属性的操作
热门文章
- 鼓励玩家自创,大量的UGC能为手游续命吗?
- Web环境下使用Starling出现的问题收集整理
- 企业微信应用设置可信域名_怎么设置企业微信朋友圈功能?企业微信朋友圈功能有哪些限制?...
- IDEA使用和实用小技巧
- doris同步作业配置参数修改和注意事项
- Python 之 模块和包
- Python 之 循环
- java 传xml js_JavaScript实现的XML与JSON互转功能详解
- electronjs设置宽度_Js操作DOM元素及获取浏览器高宽的简单方法
- 剑指offer面试题32 - II. 从上到下打印二叉树 II(二叉树)(BFS)