首页 > 代码库 > uva 10820

uva 10820

 1           
 2                                                                           /* 交表 _________________________________________________________________________________
 3                                                                             
 4                                                                               #include <iostream> 
 5                                                                               #include <map> 
 6                                                                               #include <cmath>
 7                                                                               #include <vector>
 8                                                                               #include <cstdio>
 9                                                                               #include <string>
10                                                                               #include <cstring> 
11                                                                               #include <algorithm>    
12                                                                               using namespace std; 
13                                                                               #define fir first
14                                                                               #define sec second
15                                                                               #define pb(x) push_back(x) 
16                                                                               #define mem(A, X) memset(A, X, sizeof A)
17                                                                               #define REP(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
18                                                                               #define rep(i,l,u) for(int (i)=(int)(l);(i)>=(int)(u);--(i)) 
19                                                                               #define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e) 
20                                                                               typedef long long LL;   
21                                                                               typedef unsigned long long ull;
22                                                                               typedef pair<long,long>  pll;     
23                                                                               
24                                                                               
25                                                                               LL T,n;
26                                                                               const int mod=1e9+7; 
27                                                                               const int maxn=1e5+10;    
28 
29                                                                                         const int size=50000;//1-10000的表
30                                                                                         int phi[size+1];
31                                                                                         void phi_table() // 1 到 n 的欧拉phi函数值表    (  O( nlg(lgn) )  )
32                                                                                         {  
33                                                                                             for(int i=2;i<=size;i++)  
34                                                                                             {  
35                                                                                                 phi[i]=0;  
36                                                                                             }  
37                                                                                             phi[1]=1;  
38                                                                                             for(int i=2;i<=size;i++)  
39                                                                                             {  
40                                                                                                 if(!phi[i])  
41                                                                                                 {  
42                                                                                                     for(int j=i;j<=size;j+=i)  
43                                                                                                     {  
44                                                                                                         if(!phi[j]) phi[j]=j;  
45                                                                                                         phi[j] = phi[j]/i*(i-1);  
46                                                                                                     }  
47                                                                                                 }  
48                                                                                             }  
49                                                                                         }  
50                                                                                            
51                                                                            int main()
52                                                                               {
53                                                                                    freopen("in.txt","r",stdin); 
54                                                                                    phi_table();
55                                                                                    while(cin>>n&&n)
56                                                                                    //while(cin>>T)
57                                                                                    { 
58                                                                                      //REP(kase,1,T)  { }
59                                                                                        LL ans=1;
60                                                                                        REP(i,2,n)
61                                                                                        ans+=2*phi[i];
62                                                                                        cout<<ans<<endl;
63                                                                   
64                                                                                    }
65                                                                                 return 0;
66                                                                               }
67                                                                   
68                                                                              /*
69                                                                                 note    : 
70                                                                                 debug   : 
71                                                                                 optimize:
72                                                                               */ 

 

uva 10820