在一个集合中,找和x互素的数有多少?
用容斥定理,先把每个数质因数分解(每个数至多有6个质因子),奇减偶加,就统计到和x互素的数了。
代码:
#include
#include
#include
#include
#include
using namespace std;
const int N = 5*100000+10;
const int maxn = 5*100000;
int c...
分类:
其他好文 时间:
2015-05-29 10:00:16
阅读次数:
129
#include//GCD(1007) #include#define mod 1000000007typedef long long ll;// 设n的质因数分别为p1,p2,.....,pn.//求欧拉函数(即n以内所有与n互质的数的个数)//f(x)=n*(1-p1)*(1-p2)*...*(...
分类:
其他好文 时间:
2015-05-28 19:53:43
阅读次数:
134
最大公约数是一个很经典的数学问题,对于这个问题有四种通用的解法,质因数分解法,短除法,不过比较常用的还是辗转相除法,算法出自于欧几里的著作《几何原本》,还有一个就是出自《九章算术》的更相减损法,一般实现的时候都是通过辗转相除法实现,基本的逻辑是这样的:假设把a和b的最大公约数表示成为f(a,b),并...
分类:
编程语言 时间:
2015-05-27 20:41:18
阅读次数:
191
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1732给定我们一个n, 要找到两个数的集合,使得这些书的最小公倍数(LCM)为n,由于有很多这样的集合,我们...
分类:
其他好文 时间:
2015-05-09 22:01:13
阅读次数:
204
首先考虑dp,设f[i,j]表示1~i用过了,期中j个放在偶数位然后转移大家都会这显然TLE,我们观察这个dp,任意前i个数,无论怎么放,放在奇数位的数的个数一定要大于等于放在偶数位的个数于是很明显这是经典的卡特兰数模型注意这里涉及到了除法取模,而模数不一定是质数很显然的想法是分解质因数然后约分但有...
分类:
其他好文 时间:
2015-05-09 14:43:43
阅读次数:
129
SOJ2666 分解 n!,数论,素数,ACM
给你一个数 n (1 < n <= 1000000) ,求 n! (n的阶乘)的质因数分解形式,质因数分解形式为
n=p1^m1*p2^m2*p3^m3……
* 这里 p1 < p2 < p3 < …… 为质数
* 如果 mi = 1, 则 ^ mi 就不需要输出...
分类:
其他好文 时间:
2015-05-09 10:17:31
阅读次数:
117
DP/GCD 然而蒟蒻并不会做…… Orz @lct1999神犇 首先我们肯定是要枚举下端点的……嗯就枚举右端点吧…… 那么对于不同的GCD,对应的左端点最多有log(a[i])个:因为每次gcd缩小,至少变成gcd/2(2是最小的质因数),所以是log个左端点…… 所以我们就有了log段...
分类:
其他好文 时间:
2015-05-08 23:48:24
阅读次数:
162
/*题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 */#includeint main(void){ int num = 0, i = 0; scanf("%d", &num); for (i=2; num!=1; i++) { ...
分类:
编程语言 时间:
2015-05-07 18:32:57
阅读次数:
124
找出n!中零的个数。 对n!做质因数分解n!=2x*3y*5z*... 显然0的个数等于min(x,z),并且min(x,z)==z 证明: 对于阶乘而言,也就是1*2*3*...*n [n/k]代表1~n中能被k整除的个数 那么很显然 [n/2] > [n/5] (左边是逢2增1,右边是逢5增1....
分类:
其他好文 时间:
2015-05-06 17:14:03
阅读次数:
163
题意:整个式子的和可以 化简为 sigma (C(n-1,i-1)*ai)
思路:只要判断C(n-1,i-1)能否被 m整除即可。
做法是先分解m的质因数,然后计算1!~(n-1)! 包含m的质因数的个数
C(n-1,i-1) = (n-1)!/((i-1)!*(n-i)!)
只要判断 剩下的质因数的个数是否大于等于m的任一个质因数的个数即可
#include...
分类:
其他好文 时间:
2015-05-02 15:14:18
阅读次数:
129