题意:给出一个整数n,如果n是素数输出0,否则输出它后一个素数与前一个素数的差值。分析:首先用筛法把前十万个素数都筛出来,然后放到数组里。用二分找到不大于n的最大的素数的下标,如果这个素数等于n,则直接输出0,否则输出它后一个素数与它本身的差值。 1 #include 2 #include 3 .....
分类:
其他好文 时间:
2015-01-05 20:15:37
阅读次数:
201
首先考虑一个命题:若一个数不是素数,则必存在一个小于它的素数为其的因数。这个命题的正确性是显而易见的。那么,假如我已经获得了小于一个数的所有素数,我们只需要确定该数不能被这些素数整除,这个数即为素数。换个角度:在我获得了一个素数时,将它的所有倍数标记为非素数,这样当我们遍历到一个数时,它没有被任何小...
分类:
其他好文 时间:
2015-01-01 12:28:26
阅读次数:
178
欧拉函数:表示1-(n-1)中,与n互质的数的个数
本以为学会容斥原理就不必再看欧拉函数,可是偏偏就是有些题用容斥原理解不了,必须参考欧拉,没办法只好回头看欧拉函数
下面贴一个筛法求欧拉函数模板:
//初始化eu[1]=0或者eu[1]=1,具体情况根据题目变化!
//下面计算2-10000的欧拉函数
const int MAX = 10001;
int eu[MAX];//不要忘记初始化e...
分类:
其他好文 时间:
2014-12-31 08:41:35
阅读次数:
135
题目描述
用筛法求N()之内的素数。
输入
N
输出
0~N的素数
样例输入
100
样例输出
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
代码如下:
#include
#include
using name...
分类:
其他好文 时间:
2014-12-27 23:07:01
阅读次数:
213
质数(prime number)又称素数,除了1和它本身外,不能整除以其他自然数,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。最小的质数是2。要判断一个整数N是不是质数很简单,看它是否能被2到sqrt(N)之间的整数整除即可。def isPrime(n): if n%2=...
分类:
其他好文 时间:
2014-12-19 20:31:07
阅读次数:
129
题意:求组合数C(p, q) / C(r, s)结果保留5为小数。分析:先用筛法求出10000以内的质数,然后计算每个素数对应的指数,最后再根据指数计算答案。 1 #include 2 #include 3 #include 4 5 const int maxn = 10000; 6 int...
分类:
其他好文 时间:
2014-12-14 07:02:25
阅读次数:
145
【方法一】
【代码一】
[cpp] view
plaincopy
//判断是否是一个素数
int IsPrime(int a){
//0,1,负数都是非素数
if(a
return 0;
}
//计算枚举上界,为防止double值带来的精度损失...
分类:
编程语言 时间:
2014-12-10 16:26:08
阅读次数:
221
题目大意:每个素数在素数表中都有一个序号,设1的序号为0,则2
的序号为1,3的序号为2,5的序号为3,以此类推。现在要求输出所
给定的数n的最大质因子的序号,0<n<1000000。
思路:巧用素数打表法。用sum计算素数的序号,将素数连同他的倍
数一起置为它的素数序号,从小到大循环,这样数组里存放的序号就
是最大素数因子的序号了。
注意:初始化时令所有数为0,Prime[0] = Prime[1] = 1。
即Prime[i]为0是素数,Prime[i]为1为素数。改变之后Prime[i]为数i
的最大...
分类:
其他好文 时间:
2014-12-07 00:11:24
阅读次数:
178
题目大意:给你N个数,求这N个数中哪个数的最大素因子最大,
输出这个数,如果有多种结果,输出靠前边的那个数。
思路:将筛法求素数改变一下。若i为素数,则i的1、2、3…倍的
最大素因子都为i,筛的时候,赋值为Prime[j] = i,即j的最大素因
子为i。
注意:初始化时令所有数为0,Prime[0] = Prime[1] = 1。
即Prime[i]为0是素数,Prime[i]为1为素数。改变之后Prime[i]为
i的最大素因子。...
分类:
其他好文 时间:
2014-12-07 00:09:16
阅读次数:
730