筛法求素数,组合数公式,唯一分解定理(选择与除法,uva 10375)
2016-09-27 10:40
429 查看
#include<bits/stdc++.h> using namespace std; bool vis[10010]; vector<int>prm; int e[1300]; int p,q,r,s; void init() { int m=sqrt(10000+0.5); for(int i=2;i<=m;i++) if(!vis[i]) for(int j=i*i;j<=10000;j+=i) vis[j]=true; for(int i=2;i<=10000;i++) if(!vis[i]) prm.push_back(i); } void ai(int n,int d) { for(unsigned int i=0;i<prm.size();i++) { while(n%prm[i]==0) { e[i]+=d; n/=prm[i]; } } } void af(int n,int d) { for(int i=1;i<=n;i++) ai(i,d); } int main() { init(); while(scanf("%d %d %d %d",&p,&q,&r,&s)!=EOF) { memset(e,0,sizeof(e)); af(p,1); af(q,-1); af(p-q,-1); af(r,-1); af(s,1); af(r-s,1); double ans=1; for(unsigned int i=0;i<prm.size();i++) if(e[i]) ans*=pow(prm[i],e[i]); printf("%.5lf\n",ans); } return 0; }
相关文章推荐
- UVa 10375 选择与除法(唯一分解定理)
- Uva 10375 选择与除法 唯一分解定理
- uva10375 选择与除法 唯一分解定理
- uva 10375 唯一分解定理 筛法求素数【数论】
- Choose and divide唯一分解定理/分解/直接 UVA - 10375
- UVA - 10375 Choose and divide 唯一分解定理
- uva 10375 唯一分解定理
- UVA10375 Choose and Divide (唯一分解定理)
- UVa 10375 (唯一分解定理) Choose and divide
- Choose and divide唯一分解定理/分解/直接 UVA - 10375
- Choose and divide唯一分解定理/分解/直接 UVA - 10375
- uva10375 Choose and Divide(唯一分解定理)
- Choose and divide唯一分解定理/分解/直接 UVA - 10375
- UVA 10375 - Choose and divide【唯一分解定理】
- UVA 10375 Choose and divide 唯一分解定理
- UVA10375唯一分解定理运用
- Choose and divide UVA - 10375 (数论+唯一分解定理)
- UVa10375(唯一分解定理)
- 例10-3 uva10375(唯一分解定理)
- uva 10375 (唯一分解定理+筛素数)