#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 ///////////////////////////////////////////////////////// int main() { //入力の高速化用のコード ios::sync_with_stdio(false); cin.tie(nullptr); std::cout << std::setprecision(15); ////////////////////////////////////////// ll k; cin >> k; double ans = 0; if (k > 0) { srep(i, 1, 100000000) { ans += (double)1 / (double)i - (double)1 / (double)(i + k); } ans /= k; } else { double pi = M_PI; ans = powl(pi, 2) / 6; } print(ans); return 0; }