poj 2407 Relatives(欧拉函数)

来源:互联网 发布:中国游戏中心mac版 编辑:程序博客网 时间:2024/04/27 22:42

题目的意思很明确,给一个正整数n,求出小于n切和n互素的正整数有多少个。

简单的欧拉函数。φ(x),也可以说是|<a>|。乘法模运算中的群a的规模。

#include<cstdio>#include<iostream>using namespace std;int main(){    int Euler(int n);    int n;    while(cin>>n && n)    {        int t = Euler(n);        cout<<t<<endl;    }    return 0;}int Euler(int n)/*求欧拉函数的值*/{    int res = n;    for(int i = 2 ; i*i <= n ; i++)    {        if(n%i == 0)        {            n/=i;            res = res - res/i;            while(n%i == 0)            {                n/=i;            }        }    }    if(n > 1)    {        res = res - res/n;    }    return res;}


原创粉丝点击