齐次递推公约数
题号:NC260788
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

F数列定义如下:

F_i = \begin{cases}<br />  [i = 1]               & i \leq 1 \\<br />  3 * F_{i - 1} + 2 * F_{i - 2} & i \gt 1<br />\end{cases}

计算\sum_{i = 1}^n \sum_{j = 1}^n \gcd(F_i, F_{j}) \mod 1000000007

其中\gcd(F_i, F_{j})表示F_iF_j的最大公约数。

输入描述:

仅一个正整数n,含义如题面描述所示。  

输出描述:

输出一个自然数,表示\sum_{i = 1}^n \sum_{j = 1}^n \gcd(F_i, F_{j}) \mod 1000000007的结果。
示例1

输入

复制
10

输出

复制
111278

备注:

[x=1]x = 1时为1,否则为0,n \leq 3000000