import math def asymptotic_psi1(z): result = 1.0 / z + 1.0 / (2.0 * z ** 2) # 漸近展開の項をベルヌーイ数に基づいて追加 terms = [ (1, 6, 3), (-1, 30, 5), (1, 42, 7), (-1, 30, 9), (5, 66, 11), (-691, 2730, 13), (7, 6, 15), (-3617, 510, 17), (43867, 798, 19), (-174611, 330, 21), ] for numerator, denominator, exponent in terms: term = (numerator / denominator) / (z ** exponent) result += term # 項の絶対値が小さくなりすぎたら打ち切る if abs(term) < 1e-20: break return result x = float(input()) z = x + 1.0 A = 20.0 # 閾値 if z < A: K = math.ceil(A - z) sum_terms = 0.0 for k in range(K): current_z = z + k sum_terms += 1.0 / (current_z ** 2) new_z = z + K psizK = asymptotic_psi1(new_z) ans = psizK + sum_terms else: ans = asymptotic_psi1(z) # 小数点以下16桁まで表示 print("{0:.16f}".format(ans))