nyoj-333-mdd的烦恼

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<math.h>
 5 using namespace std;
 6 int main()
 7 {
 8     int eular(int n);
 9     int n;
10     while(scanf("%d",&n)!=EOF)
11     {
12         printf("%d\n",eular(n));
13     }
14     return 0;
15 }
16 int eular(int n)
17 {
18     int ret=1,i;
19     for(i=2;i*i<=n;i++)
20         if(n%i==0)
21         {
22             n/=i,ret*=i-1;
23             while(n%i==0)
24                 n/=i,ret*=i;
25         }
26     if(n>1)
27         ret*=n-1;
28     return ret;
29 }

具体看不懂的  看下面的百科http://baike.baidu.com/view/107769.htm

posted @ 2013-07-16 15:33  nylg-haozi  阅读(128)  评论(0编辑  收藏  举报