UVA10375唯一分解定理运用
来源:互联网 发布:windows ftp命令详解 编辑:程序博客网 时间:2024/06/01 09:26
本题用到了唯一分解定理,唯一分解定理就是指任意一个数可以被分解为若干素数相乘的形式。数学描述不太严谨,但我想大家都懂的。
话不多说贴代码吧。
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>using namespace std;const int maxn = 1e4+20;int p,q,r,s;int prime[maxn],e[maxn],tot;bool v[maxn];void init(){ memset(v,1,sizeof(v)); int m = sqrt(maxn+0.5); tot = 0; for (int i=2; i<=m; i++) if (v[i]){ for (int j=i*i; j<maxn; j+=i) v[j] = 0; } for (int i=2; i<maxn; i++) if (v[i]) prime[++tot] = i;}void add_integer(int n, int d){ for (int i=1; i<=tot; i++) { while (n%prime[i] == 0) {e[i]+=d; n/=prime[i];} if (n==1) break; }}void add_factorial(int n, int d){ for (int i=2; i<=n; i++) add_integer(i,d);}int main(){ init(); while (scanf("%d %d %d %d",&p,&q,&r,&s)!=EOF){ memset(e,0,sizeof(e)); add_factorial(p,1); add_factorial(q,-1); add_factorial(p-q,-1); add_factorial(r,-1); add_factorial(r-s,1); add_factorial(s,1); double ans = 1; for (int i=1; i<=tot; i++) ans *= pow(prime[i],e[i]); printf("%.5lf\n",ans); } return 0;}
阅读全文
0 0
- UVA10375唯一分解定理运用
- UVA10375唯一分解定理
- uva10375(唯一分解定理)
- UVa10375(唯一分解定理)
- uva10375(唯一分解定理)
- uva10375 Choose and Divide(唯一分解定理)
- uva10375 选择与除法 唯一分解定理
- UVA10375 Choose and Divide (唯一分解定理)
- 例10-3 uva10375(唯一分解定理)
- Uva10375 Choose and divide(数论、唯一分解定理、快速幂)
- 紫书例题10-3 Uva10375 唯一分解定理
- 唯一分解定理 (Choose and Divide Uva10375)
- uva10375(唯一分解定理) Choose and divide
- 【数论】Choose and Divide, UVa10375 【组合数学】【唯一分解定理】【精度】
- 唯一分解定理
- 唯一分解定理
- 数论-唯一分解定理
- 唯一分解定理
- 从Xib文件加载UIView的5种方式
- 4.1常用对象API(String类)
- 创建空白精灵
- 对比S3C6410外部中断STM32外部中断
- 【Noip模拟】仔排
- UVA10375唯一分解定理运用
- elasticsearch项目踩坑记
- cf851d
- Lintcode搜索插入位置
- HDU
- vim复制代码包含注释时格式会乱掉的解决办法
- ios-动画曲线
- 中秋别光忙着赏月!这5家中国创业公司都要上太空了
- Lua模式匹配