1 #include<bits/stdc++.h>
2 #define ll long long
3 #define scan(i) scanf("%d",&i)
4 #define scand(i) scanf("%lf",&i)
5 #define scanl(i) scanf("%lld",&i)
6 #define f(i,a,b) for(int i=a;i<=b;i++)
7 #define pb(i) push_back(i)
8 #define ppb pop_back()
9 #define pf printf
10 #define dbg(args...) cout<<#args<<" : "<<args<<endl;
11 using namespace std;
12 #define Max 100001
13 int euler[Max];
14 void init(){
15 euler[1]=1;
16 for(int i=2;i<Max;i++)
17 euler[i]=i;
18 for(int i=2;i<Max;i++)
19 if(euler[i]==i)
20 for(int j=i;j<Max;j+=i)
21 euler[j]=euler[j]/i*(i-1);//先进行除法是为了防止中间数据的溢出
22 }
23 //用通式算的
24 int Euler(int n){ //返回euler(n)
25 int res=n,a=n;
26 for(int i=2;i*i<=a;i++){
27 if(a%i==0){
28 res=res/i*(i-1);//先进行除法是为了防止中间数据的溢出
29 while(a%i==0) a/=i;
30 }
31 }
32 if(a>1) res=res/a*(a-1);
33 return res;
34 }
35 int eulercal(int n){
36 int ret=n;
37 for(int i=2;i<=sqrt(n);i++)
38 if(n%i==0){
39 ret=ret/i*(i-1);//先进行除法防止溢出(ret=ret*(1-1/p(i)))
40 while(n%i==0) n/=i;
41 }
42 if(n>1) ret=ret/n*(n-1);
43 return ret;
44 }
45 int main()
46 { init();
47 int a;
48 ll ans=0;
49 scan(a);
50 f(i,2,a){
51 ans+=euler[i];
52 }
53 pf("%lld",ans);
54 }