#P51770. 「LOJ」 Function

「LOJ」 Function

题目描述

现在你有一个函数:

inline int f(int x) {
    int tot = 0, alr = 0, now;
    while (alr<x) {
        now = rand(x) + 1;
        tot++;
        if (!v[now]) alr++, v[now] = 1;
    }
    return tot;
}

其中 vv 可以被看成是一个无限大的每一个位置初始值都为 00 的数组,rand(x)\mathrm{rand}(x) 等概率均匀随机返回 [0,x)[0,x) 中的一个整数。

对于一个给定的 nn,大(shen)葱想知道 f(n)f(n) 的期望是多少。

但是这个问题太简单了,于是他把它丢给了你。

输入格式

一行一个整数 NN

输出格式

一行一个数,表示 f(N)f(N) 的期望,精确到整数。

样例

10
29

数据范围与提示

对于 20%20\% 的数据,N100N\le 100

对于 40%40\% 的数据,N103N\le 10^3

对于 60%60\% 的数据,N3×105N\le 3\times 10^5

对于 80%80\% 的数据,N107N\le 10^7

对于 100%100\% 的数据,N109N\le 10^9