hdu 1787 欧拉函数~~

来源:互联网 发布:坐月子的书籍推荐知乎 编辑:程序博客网 时间:2024/06/06 07:20

题意:

  求1~(n-1)与n不互素的数

题解:

   求出欧拉函数,总数减去互素数即可。

代码:

#include <bits/stdc++.h>using namespace std;int Euler(int n){    int ret=n;    for(int i=2;i<=sqrt(n);i++)        if(n%i==0)        {           ret=ret/i*(i-1);           while(n%i==0)            n/=i;        }        if(n>1)            ret=ret/n*(n-1);        return ret;}int main(){    int n;    while(cin>>n&&n)    {        int ans = n-1-Euler(n);        cout<<ans<<endl;    }    return 0;}
原创粉丝点击