from functools import lru_cache import sys, time, random from collections import deque, Counter, defaultdict input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 61 - 1 mod = 998244353 from math import gcd n = ii() ni = 1 / n @lru_cache(None) def solve(x): if x == 1: return 0 ans = 1 for i in range(2, x): ans += solve(gcd(x, i)) / x return ans * x / (x - 1) if n >= 1000000: raise Exception("n is too large") else: print(solve(n))