#pragma region Region_1 #include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) #define drep(i, n) for (int i = (n)-1; i >= 0; --i) #define srep(i, s, t) for (int i = s; i < t; ++i) #define rng(a) a.begin(), a.end() #define rrng(a) a.rbegin(), a.rend() using ll = long long; using P = pair; using VI = vector; using VVI = vector; using VL = vector; using VP = vector

; #define MOD 1000000007 const int INF = 1e9 + 10; template void chmax(T& a, C b) { if (a <= b) a = b; } template void chmin(T& a, C b) { if (a >= b) a = b; } // const int dx[]{0, 1, 0, -1, -1, -1, 1, 1}, dy[]{1, 0, -1, 0, -1, 1, -1, 1}; // const int dx[]{0, 1, 0, -1}, dy[]{1, 0, -1, 0}; template T sum(const vector& v) { T res = 0; for (size_t i = 0; i < v.size(); ++i) res += v[i]; return res; } ///////////////////////////////////////////////////////// // print like python // https://qiita.com/Lily0727K/items/06cb1d6da8a436369eed ///////////////////////////////////////////////////////// void print() { cout << endl; } template void print(Head&& head, Tail&&... tail) { cout << head; if (sizeof...(tail) != 0) cout << " "; print(forward(tail)...); } template void print(vector& vec) { for (auto& a : vec) { cout << a; if (&a != &vec.back()) cout << " "; } cout << endl; } template void print(vector>& df) { for (auto& vec : df) { print(vec); } } #pragma endregion Region_1 ///////////////////////////////////////////////////////// /** * 素因数分解 * 素数とその個数をペアにしたリストを返す */ vector> primeFactorize(ll n) { if (n <= 1) { return {}; } vector> res; ll x = n; for (ll i = 2; i * i <= n; i++) { if (x == 1) break; if (x % i != 0) continue; int cnt = 0; while (x % i == 0) { cnt++; x /= i; } res.emplace_back(i, cnt); } if (x > 1) { res.emplace_back(x, 1); } return res; } bool isHeiho(int x) { if (x <= 1) return true; for (auto v : primeFactorize(x)) { if (v.second % 2 > 0) { return false; } } return true; } int main() { //入力の高速化用のコード ios::sync_with_stdio(false); cin.tie(nullptr); std::cout << std::setprecision(15); ////////////////////////////////////////// ll k; cin >> k; double ans = 0; srep(i, 1, 100000000) { ans += (double)1 / (double)i - (double)1 / (double)(i + k); } print(ans / k); return 0; }