zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    Concurrent
    Java多线程状态切换
    Java中volatile如何保证long和double的原子性操作
    协程与线程
    线程饥饿
    线程活锁
    线程死锁
    Java Thread之start和run方法的区别
    ThreadLocal内存泄漏
    interrupt和interrupted和isInterrupted的区别
  • 原文地址:https://www.cnblogs.com/Mr-Xu-JH/p/3859413.html
Copyright © 2011-2022 走看看