问题描述
Vivid 非常擅长高数。 所以他的同学都叫他高数小王子。 然而在高数的期末考试中,他被最后一道大题难倒了 所以他向你求助。
题目是这样的。
给出一个关于 f(x)的微分方程及其初值, $\left\{\begin{matrix}{f{\left( x \right)}}^{"}=f{\left( x \right)}\\ {f{\left( 0 \right)}=f{\left( 0 \right)}}^{'}=1\end{matrix}\right.$
。 然后 $g\left( x \right) = \frac{x}{{f\left( x \right) - 1}}$ , 你的任务是计算$\mathop {\lim }\limits_{x \to 0} {\kern 1pt} {\kern 1pt} {\kern 1pt} g{\left( x \right)^{\left( n \right)}}$ .$g{\left( x \right)^{\left( n \right)}}$ 是 $g\left( x \right)$ 的N阶导 , 也就是 $\left\{ \begin{array}{l}
g{\left( x \right)^{\left( 0 \right)}} = g\left( x \right)\\
g{\left( x \right)^{\left( n \right)}} = {\left[ {g{{\left( x \right)}^{\left( {n - 1} \right)}}} \right]^\prime }{\kern 1pt} {\kern 1pt} {\kern 1pt} for{\kern 1pt} {\kern 1pt} {\kern 1pt} n{\kern 1pt} {\kern 1pt} \ge 1
\end{array} \right.$ .
结果可能是一个分数,但是Vivid 非常喜欢整数,所以他设计了一个函数ftoi(x)把一个分数变成一个整数
ftoi(x)
{
MOD=1000000007;
sign=1;
if(x<0)
{
x=-x;
sign=-1;
}
if(x 不是最简分数)将x化成最简分数;
up=x的分子;
down=x的分母;
inv 是使得 inv*down%MOD=1 成立的最小的非负整数;
(某些时候这样的 inv 可能不存在,但是在这个问题中你可以认为他都是存在的。)
return (inv*up*sign%MOD+MOD)%MOD;
}
例如, ftoi(1)=1, ftoi(-1)= 1000000006, ftoi(-2/4)=ftoi(-1/2)= 500000003, ftoi(6/12)=ftoi(1/2)= 500000004
输入描述
多组测试数据, (大概60000组),每一个测试数据占一行,给出一个整数n。
处理到文件末尾
[参数约定]
0<=n<65536
输出描述
对于每一个n,输出 $ftoi{\left( \mathop {\lim }\limits_{x \to 0} {\kern 1pt} {\kern 1pt} {\kern 1pt} g{\left( x \right)^{\left( n \right)}} \right)}$ 占一行.
输入样例
0
1
输出样例
1
500000003