• HDU 4135


    #include <iostream>
    using namespace std;
    #define maxn 70
    long long  prime[maxn];
    long long  getans(long long num,int m)        //求1-mun  不互素的数,m为num素因子的个数;
    {                           //利用容斥原理
        long long  ans=0,tmp,i,j,flag;
        for(i=1;i<(long long)(1<<m);i++){
            tmp=1,flag=0;
            for(j=0;j<m;j++)
                if(i&((long long)(1<<j)))
                    flag++,tmp*=prime[j];
            if(flag&1)
                ans+=num/tmp;
            else
                ans-=num/tmp;
        }
        return ans;
    }
    int main()
    {
        int T,t=0,m;
        long long  n,a,b;
        cin>>T;
        while(T--){
            cin>>a>>b>>n;
            m=0;
            for(int i=2;i*i<n;i++){
                if(n&&n%i==0){
                    prime[m++]=i;
                    while(n&&n%i==0)
                        n/=i;
                }
            }
            if(n>1)prime[m++]=n;
            cout<<"Case #"<<++t<<": "<<(b-getans(b,m))-(a-1-getans(a-1,m))<<endl;

        }
        return 0;
    }

  • 相关阅读:
    生成密码
    生成密码
    C#委托
    C#委托
    C#委托
    最近所有博客
    win10 uwp 读写XML
    win10 uwp 读写XML
    win10 uwp 读写XML
    win10 uwp 绑定密码
  • 原文地址:https://www.cnblogs.com/Mr-Xu-JH/p/3859413.html
Copyright © 2020-2023  润新知