Yukikaze 正在学习数论。她发现了一个计算整数模素数 $p$ 的乘法逆元的神秘函数。该函数的伪代码如下:
1: function F(x, p) 2: if x ≤ 1 then 3: return 1 4: else 5: return −p/x · F(p mod x, p) mod p 6: end if 7: end function
她想知道,如果她以均匀分布在 $[1, p - 1]$ 范围内的随机整数调用此函数,函数调用的期望次数是多少。
输入格式
输入的第一行包含一个整数 $T$ ($1 \le T \le 100$),表示测试用例的数量。 接下来的 $T$ 行,每行包含一个整数 $p$ ($2 \le p \le 10^6$, $p$ 为素数),表示上述函数的参数。
输出格式
对于每个测试用例,输出一行答案。 如果你的答案的绝对误差或相对误差不超过 $10^{-6}$,则被视为正确。 形式化地,设你的答案为 $a$,标准答案为 $b$。如果满足 $\frac{|a-b|}{\max\{1,|b|\}} \le 10^{-6}$,则你的答案将被接受。
样例
输入 1
5 2 3 5 7 999983
输出 1
1.0000000000 1.5000000000 2.0000000000 2.1666666667 15.9864347558
说明
对于样例中的第 4 个测试用例,我们有:
$F(1, 7)$ $F(2, 7) \to F(1, 7)$ $F(3, 7) \to F(1, 7)$ $F(4, 7) \to F(3, 7) \to F(1, 7)$ $F(5, 7) \to F(2, 7) \to F(1, 7)$ $F(6, 7) \to F(1, 7)$
因此答案为 $(1 + 2 + 2 + 3 + 3 + 2)/6 = 2.16666666 \dots$。