酷代码 AI
菜单
服务商

PYTHON 回答篇幅:简单明了

根据题目描述,需要找到最小的整数 \( x \) 使得 \( S(x) = \sum_{k=1}^{x} \frac{1}{k} > y \),其中 \( y \) 是输入值。 使用调和数 \( H_x = \sum_{k=1}^{x} \frac{1}{k} \) 近似公式: \[ H_x \approx \ln x + \gamma + \frac{1}{2x} - \frac{1}{12x^2} + \cdots \] 其中 \( \gamma \approx 0.5772156649 \) 是欧拉常数。 解不等式: \[ \ln x + \gamma > y \] \[ x > e^{y - \gamma} \] 取整数上限。 Python 实现: ```python import math def min_x(y): if y <= 0: return 0 gamma = 0.57721566490153286060651209008240243104215933593992 x_approx = math.exp(y - gamma) x = int(x_approx) # 检查是否满足条件 while True: # 计算调和数 H_x h = 0.0 for k in range(1, x + 1): h += 1.0 / k if h > y: return x x += 1 if __name__ == "__main__": y = float(input().strip()) print(min_x(y)) ``` 样例输入 `15.0` 时,输出 `1835421`。 [2025-12-17 17:56:24 | AI问答 | 344点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多