N = int(input()) def gcd(a,b): if b==0:return a return gcd(b,a%b) P = list(range(N+1)) for i in range(2,N+1): if i*i>N:break for j in range(i*i,N+1,i): P[j] = P[i] dp = [0]*(N+1) memo = {} def dp(x): if x==1:return 0 if P[x]==x:return x/(x-1) if x in memo:return memo[x] cnt = 0 for i in range(1,x): cnt += dp(gcd(x,i)) memo[x] = cnt/(x-1)+x/(x-1) return memo[x] print(dp(N))