码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 4135

时间:2014-07-22 00:00:36      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:os   io   for   re   c   amp   

#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;
}

HDU 4135,布布扣,bubuko.com

HDU 4135

标签:os   io   for   re   c   amp   

原文地址:http://www.cnblogs.com/Mr-Xu-JH/p/3859413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!