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(maxsize=None) def solve(x): if x == 1: return 0 ans = 0 nx = x p = [] for i in range(2, x): if i * i > nx: break if nx % i == 0: for j in range(i, x, i): for k in p: if j % k == 0: break else: ans += solve(gcd(x, j)) while nx % i == 0: nx //= i p.append(i) if nx > 1: for j in range(nx, x, nx): for k in p: if j % k == 0: break else: ans += solve(gcd(x, j)) ans += x return ans / (x - 1) print(solve(n))