1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<cmath> 5 #include<ctime> 6 #include<cstdlib> 7 8 #include<string> 9 #include<stack> 10 #include<queue> 11 #include<vector> 12 #include<algorithm> 13 #include<map> 14 #include<set> 15 16 #define inf 2147483647 17 #define ri register int 18 #define ll long long 19 20 using namespace std; 21 22 inline void read(int &x){ 23 x=0; 24 char t=getchar(); 25 bool f=0; 26 27 while(t<'0' || t>'9'){ 28 if(t=='-')f=1; 29 t=getchar(); 30 } 31 32 while(t>='0' && t<='9'){ 33 x=(x<<3)+(x<<1)+t-'0'; 34 t=getchar(); 35 } 36 37 if(f)x=-x; 38 } 39 40 inline void Euler(); 41 42 int a[40005]; //最小质因数 43 int pri[10005],p=0; //质数表 44 int f[40005]; //phi 45 46 int n,ans=0; 47 48 int main(){ 49 read(n); 50 51 n--; 52 53 Euler(); 54 55 for(ri i=2;i<=n;i++)ans+=f[i]; 56 57 ans=(ans<<1)+3; 58 59 printf("%d ",ans); 60 61 return 0; 62 } 63 64 inline void Euler(){ 65 for(ri i=2;i<=n;i++){ 66 if(!a[i]){ 67 p++; 68 pri[p]=i; 69 a[i]=i; 70 } 71 72 for(ri j=1;j<=p && i*pri[j]<=n;j++){ 73 a[i*pri[j]]=pri[j]; 74 if(i%pri[j]==0)break; 75 } 76 } 77 78 f[1]=1; 79 80 for(ri i=2;i<=n;i++){ 81 if(i%(a[i]*a[i])==0)f[i]=f[i/a[i]]*a[i]; 82 else f[i]=f[i/a[i]]*(a[i]-1); 83 } 84 }