UVA10325

来源:互联网 发布:网络成瘾综合症 编辑:程序博客网 时间:2024/06/11 04:46

链接:点击打开链接

题意:求1~n中与给定m个数互质的数的个数(互质:最大公因数为1)

代码:

<span style="font-family:FangSong_GB2312;font-size:18px;">#include <iostream>#include <algorithm>#include <cstdio>using namespace std;long long a[20];long long gcd(long long a,long long b){    if(b==0)    return a;    return gcd(b,a%b);}long long lcm(long long a,long long b){    return a/gcd(a,b)*b;}int main(){                                 //思路详见:http://blog.csdn.net/stay_accept/article/details/47209751    long long n,m,i,j,k,sum,temp,sign,sumsum;    while(cin>>n>>m){    sumsum=0;    for(i=0;i<m;i++)    cin>>a[i];    sort(a,a+m);    temp=1<<m;    for(i=1;i<temp;i++){    j=i;k=sum=0;sign=1;    while(j){    if(j&1){    sign=lcm(sign,a[k]);    sum++;    }    j>>=1;k++;    }    if(sign!=0){    if(sum%2!=0)    sumsum+=(n/sign);    else    sumsum-=(n/sign);    }    }    cout<<n-sumsum<<endl;    }    return 0;}</span>


 

 

0 0
原创粉丝点击