关于数论中唯一分解定理的问题
2016-10-24 17:01
309 查看
①普通的唯一分解定理
先预处理出prime[]里面装的是1~n的素数,然后分解x时,不断用x除以素数,直到x变成1。
这种方法时间比较长,可以进行剪枝,就是x在不断除以素数的过程中,当x变成了一个素数,就直接结束。
②分解x!
当第i个素数为P 时,c[i]= n/p+n/(p*p)+n/(p*p*p)……(直到n/(p*……*p变成0)
先预处理出prime[]里面装的是1~n的素数,然后分解x时,不断用x除以素数,直到x变成1。
这种方法时间比较长,可以进行剪枝,就是x在不断除以素数的过程中,当x变成了一个素数,就直接结束。
void Insert(int x) { for(int i=1;i<=num;i++) { if(x%prime[i]==0) { int cnt=0; while(x%prime[i]==0)x/=prime[i],cnt++; a[i]+=cnt; } if(x==1)break; if(f[x]==0)//f[x]=0说明x是素数 { a[P[x]]++;break;//P[x]是x所属的素数编号 } } }
②分解x!
当第i个素数为P 时,c[i]= n/p+n/(p*p)+n/(p*p*p)……(直到n/(p*……*p变成0)
void jie(int x) { for(ll i=1;i<=num;i++) { int P=prime[i]; while(P<=n) { c[i]+=x/P; P*=prime[i]; } } }
相关文章推荐
- [数论]唯一分解定理
- Uva10375 Choose and divide(数论、唯一分解定理、快速幂)
- uva 10375 唯一分解定理 筛法求素数【数论】
- 数论:整数的唯一分解定理及其应用小结
- 2015多校联合第十场hdu5407CRB and Candies数论 唯一分解定理
- HDU-1215 七夕节 数论 唯一分解定理 求约数之和
- 欧几里得算法和唯一分解定理(数论)
- HDU 2053 Switch Game(开灯问题,唯一分解定理)
- 9.16 第四题 数论 欧拉筛+唯一分解定理
- 欧几里得算法和唯一分解定理(数论)
- (数论)最大公约数、最小公倍数、唯一分解定理
- Sumdiv--数论+快速幂取模+唯一分解定理+欧拉筛
- Choose and divide UVA - 10375 (数论+唯一分解定理)
- 数论--唯一分解定理及代码实现
- HDU 2608 - 0 or 1 (数论 + 唯一分解定理)
- 等式(数论/唯一分解定理)
- poj 1845 数论(唯一分解定理+分治法求等比数列前n项的和mod m的值)
- Aladdin and the Flying Carpet LightOJ - 1341 数论/唯一分解定理
- 【数论】Minimum Sum LCM, UVa10791【唯一分解定理】【素数筛法】
- 【数论】Choose and Divide, UVa10375 【组合数学】【唯一分解定理】【精度】