zoukankan      html  css  js  c++  java
  • UVA-10375 唯一分解定理

    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<math.h>
    #include<stdio.h>
    #define rep(i,j,k) for(int i=j;i<=k;i++)
    
    using namespace std;
    const int N = 10007;
    bool is_prime[N];
    int prime[N];
    int cnt=0;
    void get_prime(){
      int m=sqrt(N);
      memset(is_prime,0,sizeof(is_prime));
      rep(i,2,m){
         if (!is_prime[i]){
           for (int j=i*i;j<=N;j+=i){
             is_prime[j]=1;
           }
         }
      }
      rep(i,2,N){
        if (is_prime[i]==0){
            prime[cnt++]=i;
        }
      }
    }
    int e[N];
    void add_integer(int num,int d){
      for (int i=0;i<cnt;i++){
         while(num%prime[i]==0){
            num/=prime[i];
            e[i]+=d;
         }
         if (num==1)break;
      }
    }
    void add_factorial(int n,int d){
        for(int i=1;i<=n;i++)
            add_integer(i,d);
    }
    int main(){
      int p,q,r,s;
      get_prime();
      while(~scanf("%d%d%d%d",&p,&q,&r,&s)){
        memset(e,0,sizeof(e));
        add_factorial(p,1);
            add_factorial(q,-1);
            add_factorial(p-q,-1);
            add_factorial(r,-1);
            add_factorial(s,1);
            add_factorial(r-s,1);
            int maxx = max(r,p);
            double ans=1;
            for (int i=0;i<=maxx;i++){
                ans*=pow(prime[i],e[i]);
            }
            printf("%.5f
    ",ans);
      }
      return 0;
    }
    有不懂欢迎咨询 QQ:1326487164(添加时记得备注)
  • 相关阅读:
    输入汉字转拼音
    DBGridEh(RestoreGridLayoutIni)用法
    当选中节点的同时选中父节点
    implsments
    HTML中的post和get
    SmartUpload中文乱码
    调查平台,考试系统类型的数据收集型项目
    final
    职业生涯中12个最致命的想法
    abstract
  • 原文地址:https://www.cnblogs.com/bluefly-hrbust/p/9819738.html
Copyright © 2011-2022 走看看