#include #include #include #include using namespace std; using ll = long long; template inline bool chmax(T& a, const T& b) {if (a inline bool chmin(T& a, const T& b) {if (b> N; map memo; memo[1] = 0.0; auto solve = [&memo] (auto self, ll n) -> double { if (memo.contains(n)) return memo.at(n); double divsum = 0; for (int d=2; d*d <= n; d++) { if (n % d == 0) { divsum += self(self, d); if (d != n/d) { divsum += self(self, n/d); } } } double ret = double(n) / double(n-1) + divsum / double(n-1); memo[n] = ret; return ret; }; cout << fixed << setprecision(10); cout << solve(solve,N) << endl; return 0; }