zoukankan      html  css  js  c++  java
  • hdu4135(容斥原理求质数,队列实现)

    传送门

    ac代码(队列实现版本):

    #include<bits/stdc++.h>
    #define per(i,a,b) for(int i=a;i<=b;i++)
    using namespace std;
    typedef long long ll;
    //#define int long long
    const ll inf =2333333333333333LL;
    const double eps=1e-8;
    int read(){
        char ch=getchar();
        int res=0,f=0;
        while(ch<'0' || ch>'9'){f=(ch=='-'?-1:1);ch=getchar();}
        while(ch>='0'&&ch<='9'){res=res*10+(ch-'0');ch=getchar();}
        return res*f;
    }
    // ------------------------head
    #define mod 1000000007
    const int N=1000005;
    int T,zhi[16],zcnt;
    void init(int n){
        zcnt=0;
        for(int i=2;i*i<=n;i++){
            if(n%i==0){
                zhi[zcnt++]=i;
                while(n%i==0)n/=i;
            }
        }
        if(n>1){zhi[zcnt++]=n;}
    }
    ll func(ll m){
        ll que[10000],qcnt=0;
        int k;
        que[qcnt++]=-1;
        per(i,0,zcnt-1){
            k=qcnt;
            per(j,0,k-1){
                que[qcnt++]=que[j]*zhi[i]*(-1);
            }
        }
        ll sum=0;
        per(i,1,qcnt-1)sum+=m/que[i]; 
        return sum;
    }
    
    signed main()
    {
        ll a,b;
        int n;
        scanf("%d",&T);
        int cas=0;
        while(T--){
            cas++;
            scanf("%lld %lld %d",&a,&b,&n);
            init(n);
            printf("Case #%d: %lld
    ",cas,b-func(b)-(a-1-func(a-1)));
        }
    
        return 0;
    }
  • 相关阅读:
    CF251D
    P6914
    CF1100F
    双连通 / 圆方树 胡扯笔记
    P4082
    SparkSql使用Hive中注册的UDF函数报类找不到问题解决
    Oracle 查询时使用时间作为where报错hour must be between 1 and 12
    【面试-python】
    Linux和Git
    AMBA初探
  • 原文地址:https://www.cnblogs.com/WindFreedom/p/9690234.html
Copyright © 2011-2022 走看看