欧拉函数

来源:互联网 发布:php求和函数 编辑:程序博客网 时间:2024/06/16 15:45

欧拉函数有一个特别重要的定理就是
n=p1^a1*p2^a2 *…. *pk^ak;那么
ψ(n)=n*(1-1/p1) * 1-(1-1/p2) ……. (1-1/pk);

#include <cstdio>int oula(int n){    int rea=n;    for(int i = 2;i * i <= n;i ++)    {        if(n%i==0)        {            rea=rea-rea/i;            do                n/=i;            while(n%i==0);        }    }    if(n>1)        rea=rea-rea/n;    return rea;}int main(){    int n;    scanf("%d",&n);    printf("%d",oula(n));    return 0;}

模板题有POJ-2407
原题地址http://poj.org/problem?id=2407

原创粉丝点击