转自:http://blog.csdn.net/dinosoft/article/details/5829550 一般的线性筛法 首先先介绍一般的线性筛法求素数 这种方法比较好理解,初始时,假设全部都是素数,当找到一个素数时,显然这个素数乘上另外一个数之后都是合数(注意上面的 i*i , 比 i*2 ...
分类:
其他好文 时间:
2018-06-29 19:28:03
阅读次数:
190
#include using namespace std; int flag[100000]; void askprime(){ flag[1]=1;//1既不是质数也不是合数 for(int i=2;i<=sqrt(100000);i++)//从1到sqrt(n) { if(flag[i]==0)... ...
分类:
其他好文 时间:
2018-06-29 14:03:17
阅读次数:
144
以下来自http://blog.csdn.net/stack_queue/article/details/53560887 求素数是程序设计比赛中经常遇到的问题,最基本的方法是通过素数的定义直接判断,只能被1和它本身整除的数就是素数了。这种方法适合判断单个数是否为素数,当要求一个范围内素数而这个范围 ...
分类:
编程语言 时间:
2018-03-18 00:42:25
阅读次数:
274
题目描述 定义p(n)为n大于1的最小约数。给出N,求p(2)+p(3)+...+p(N)的值。 输入 一个整数N。 输出 1个整数,表示所求的值。 样例输入 样例输出 提示 ?对于30%的数据,N≤103;?对于60%的数据,N≤103;?对于100%的数据,2≤N≤107。 题目大意:略 思路: ...
分类:
其他好文 时间:
2018-02-11 14:47:42
阅读次数:
148
题意:n个格子,m个球,让你把球放入某些格子里,使得所有有球的格子之间的距离(abs(i-j))均为素数 ,让你输出方案数。 只占一个格子或者两个格子显然可行。 占有三个格子的情况下,则必须保证其中两者的间距为2,另两者的间距为一个+2以后仍为素数的素数。这个可以预处理。 占有四个格子的情况下,间距 ...
分类:
其他好文 时间:
2017-10-28 18:52:50
阅读次数:
144
入门级筛素数--试除法,复杂度O(n^2) 学了一段时间算法以后,应该会了解到筛法求素数,复杂度略高于O(n) 当然,不难发现,如果MaX值过大的话,不只空间会炸,而且从头开始扫很玄学,是不怎么可取的。 于是引入MILLER RABIN算法。可以单独判断一个大数是否素数,但是不保证正确。我们只能通过 ...
分类:
编程语言 时间:
2017-10-08 22:30:47
阅读次数:
281
题目链接:http://poj.org/problem?id=2689 Time Limit: 1000MS Memory Limit: 65536K Description The branch of mathematics called number theory is about proper ...
分类:
其他好文 时间:
2017-09-22 23:54:22
阅读次数:
226
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=2 Time Limit:3000ms Memory Limit:65536K Description 哥德巴赫(Goldbach ]C.,1690.3.18~176 ...
分类:
其他好文 时间:
2017-09-22 00:57:04
阅读次数:
164
素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功。 基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 。。N^(0.5) ,看看能否整除N。 如果需要判断的次数较多,则先用下面介绍的办法预处理。 一般的线性筛法 首先先介绍一般的线性筛法求素数 void make_prim ...
分类:
其他好文 时间:
2017-09-13 17:09:24
阅读次数:
179
线筛,时间复杂度O(N log log N) 原理比较易懂,因为合数可以被分解为两个因数。 所以可以反过来,两个因数的乘积必定不是质数。 所以,通过一次次的枚举两个因数,合数就被“筛选”掉了,只留下质数在筛子里。 按照上述的原理,核心代码本应该是这样的: 然后vis[]数组里为false的的就是质数 ...
分类:
其他好文 时间:
2017-09-10 15:06:36
阅读次数:
236