HDU 1286 找新朋友

题解:分析题目,就是一个裸的欧拉函数,于是AC。

#include <cstdio>
int eular(int n){
    int ret=1,i;
    for(i=2;i*i<=n;i++)
    if(n%i==0){
        n/=i,ret*=i-1;
        while(n%i==0)
        n/=i,ret*=i;
    }
    if(n>1) ret*=n-1;
    return ret;
}
int main(){
    int n;
    scanf("%d",&n);
    while (scanf("%d",&n)!=EOF) printf("%d\n",eular(n));
    return 0;   
}
posted @ 2013-12-27 16:00  forever97  阅读(86)  评论(0编辑  收藏  举报