from functools import cache @cache def factorize(n: int): pe = {} for p in range(2, n): if p * p > n: break if n % p == 0: e = 0 while n % p == 0: n //= p e += 1 pe[p] = e if n > 1: pe[n] = 1 return pe @cache def totient(n: int): ans = n for p in factorize(n): ans //= p ans *= p - 1 return ans def get_divisors(n: int): pe = factorize(n) ans = [1] for p, e in pe.items(): exps = [p**ei for ei in range(1, e + 1)] ans.extend([d * f for d in ans for f in exps]) ans.sort() return ans @cache def solve(n: int): if n == 1: return 0.0 ans = sum(solve(d) * totient(n // d) for d in get_divisors(n) if d != n) ans += n ans /= n - 1 return ans n = int(input()) print(solve(n))