#include #include #include using namespace std; int main() { int n; cin >> n; vector dp(n + 1, -1); dp[0] = dp[1] = 0; auto dfs = [&](auto f, int now) -> double { if (dp[now] != -1) return dp[now]; double sum = 0; for (int i = 1; i < now; ++i) { int nxt = __gcd(i, now); sum += f(f, nxt); } dp[now] = (sum + now) / (now - 1); return dp[now]; }; printf("%.10f\n", dfs(dfs, n)); }