#include typedef long long ll; const int MAXN = 1e7 + 5; using namespace std; double f[MAXN]; int N, phi[MAXN]; double dfs(int a) { if (f[a] || a == 1) return f[a]; for (int i = 1; i < a; ++i) { if (a % i == 0) { f[a] += phi[a / i] * (dfs(i) + 1.0); } } f[a] = (f[a] + 1.0) / (a - 1.0); return f[a]; } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> N; f[1] = 0; for (int i = 1; i <= N; ++i) phi[i] = i; for (int i = 2; i <= N; ++i) { if (phi[i] == i) { phi[i]--; for (int j = i + i; j <= N; j += i) phi[j] -= phi[j] / i; } } cout << dfs(N) << endl; return 0; }