hdu 4135

来源:互联网 发布:hao123网址之家淘宝 编辑:程序博客网 时间:2024/05/29 16:52

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135


#include<iostream>#include<string.h>using namespace std;__int64 a[1000],num;void init(__int64 n)//求一个数的质因子{    __int64 i;    num=0;    for(i=2;i*i<=n;i++)    {        if(n%i==0)        {            a[num++]=i;            while(n%i==0)                n=n/i;        }    }    if(n>1)//这里要记得        a[num++]=n;}__int64 haha(__int64 m)//用队列数组实现容斥原理{    __int64 que[10000],i,j,k,t=0,sum=0;    que[t++]=-1;    for(i=0;i<num;i++)    {        k=t;        for(j=0;j<k;j++)           que[t++]=que[j]*a[i]*(-1);    }    for(i=1;i<t;i++)        sum=sum+m/que[i];    return sum;}int main(){    __int64 T,x,y,n,i,sum;    while(scanf("%I64d",&T)!=EOF)    {        for(i=1;i<=T;i++)        {           scanf("%I64d%I64d%I64d",&x,&y,&n);           init(n);           sum=y-haha(y)-(x-1-haha(x-1));           printf("Case #%I64d: ",i);           printf("%I64d\n",sum);        }    }    return 0;}


0 0
原创粉丝点击