sgu 102模拟欧拉函数

来源:互联网 发布:俄罗斯族 知乎 编辑:程序博客网 时间:2024/05/16 05:48

感觉自己弱爆了,做做SGU吧。。。

#include<iostream>#include<cmath> //欧拉函数using namespace std;int euler(int n){    int m=n; int ans=n;    for(int i=2;i<=sqrt(n*1.0);i++)   //注意等于号,    {        if(m%i==0)        {            ans=ans*(i-1)*1.0/i;            while(m%i==0)m/=i;        }    }    if(m!=1)ans=ans*(m-1)/m;    return ans;}int main(){    int n;    while(cin>>n)    {        cout<<euler(n)<<endl;    }}


0 0
原创粉丝点击