1、素数筛法,打表;
2、从中间向两边寻找。
#include
using namespace std;
int main()
{
bool p[10001];
int m,i,j;
memset(p,0,sizeof(p));
for(i=2;i<=10000;i++) //筛出素数,打表
if(!p[i])
for(j=i+i;j<=1...
分类:
其他好文 时间:
2015-03-10 17:25:50
阅读次数:
156
参考博客:http://blog.csdn.net/niushuai666/article/details/7346408收获:线性素数筛法、素数分解法公式博客:http://www.cnblogs.com/baidongtan/archive/2012/08/30/2663015.html还有关于...
分类:
其他好文 时间:
2015-02-03 12:35:21
阅读次数:
210
首先考虑一个命题:若一个数不是素数,则必存在一个小于它的素数为其的因数。这个命题的正确性是显而易见的。那么,假如我已经获得了小于一个数的所有素数,我们只需要确定该数不能被这些素数整除,这个数即为素数。换个角度:在我获得了一个素数时,将它的所有倍数标记为非素数,这样当我们遍历到一个数时,它没有被任何小...
分类:
其他好文 时间:
2015-01-01 12:28:26
阅读次数:
178
质数(prime number)又称素数,除了1和它本身外,不能整除以其他自然数,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。最小的质数是2。要判断一个整数N是不是质数很简单,看它是否能被2到sqrt(N)之间的整数整除即可。def isPrime(n): if n%2=...
分类:
其他好文 时间:
2014-12-19 20:31:07
阅读次数:
129
【方法一】
【代码一】
[cpp] view
plaincopy
//判断是否是一个素数
int IsPrime(int a){
//0,1,负数都是非素数
if(a
return 0;
}
//计算枚举上界,为防止double值带来的精度损失...
分类:
编程语言 时间:
2014-12-10 16:26:08
阅读次数:
221
/*
题意:输入有多组数据,每组数据一个n,如果n是素数,输出0否则输出离n最近的两个素数的积,第100000个素数是1299709,所有的素数都在这个范围内
思路:素数筛法加二分查找下界
*/
#include
int a[1299720],pri[100005];
int Serch(int v)//二分查找下界
{
int mid,x=0,y=100001;
...
分类:
其他好文 时间:
2014-12-04 18:06:31
阅读次数:
177
代码:#include #include #include #include #include #include #define MAX 1000001using namespace std;bool b[MAX];int main(){ b[0]=b[1]=false; b[2]=tr...
分类:
其他好文 时间:
2014-11-26 18:48:26
阅读次数:
189
具体筛法是:先把n个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就...
分类:
编程语言 时间:
2014-10-31 18:38:36
阅读次数:
195
题目:求给顶一个数n,的所有的1 ≤ m ≤ n的m,使得gcd(m,n)≠ 1 且 gcd(m,n)≠ m。
分析:数论,素数筛法,欧拉函数。
设pi为n的第i个素数因,k1为第i个素数因子的个数,则有:
1 ≤ m ≤ n,gcd(m,n)= 1 的m的个数为欧拉函数;
欧拉函数:φ(n)= n *(1 - 1/...
分类:
其他好文 时间:
2014-10-28 09:25:08
阅读次数:
222