// // 入度之和
// // 时间限制: 1000MS
// // 内存限制: 65536KB
// // 题目描述:
// // 在包含N个节点的有向图上,节点从1到N编号。初始时图中没有连边,现在对于所有整数对 i 和 j ,如果满足1≤i<j≤N且 i 能整除 j ,则从 i 号节点向 j 号节点连一条边。那么图上所有节点的入度(某个节点的入度即连向该节点的边数)之和是多少?
// // 输入描述
// // 输入一个整数N,1≤N≤10e9。
// // 6
// // 样例输出
// // 8
// // for里是n,可以过82%
// // for里n改成n/2,91%
// // for里n改成n/3,91%
// // for里n改成n/4,100%
// #include<iostream>
// using namespace std;
// int main(){
// int n;cin>>n;
// long a=n-1;
// for(int i=2;i<=n/4;i++){
// a+=n/i-1;
// }
// a+=(n/3-n/4)*2;
// a+=n/2-n/3;
// cout<<a;
// return 0;
// }
// 若若的难题
// 时间限制: 3000MS
// 内存限制: 589824KB
// 题目描述:
// 若若今天碰到了一道难题,难题是这样的,对于所有的小于等于n的a,b,且a和b不能相等,求出所有这些a和b的最大公约数,我们记g(n)为这些最大公约数的最大值,现在需要你求出g(2)*g(2)+ g(3)*g(3) + g(4)*g(4) + ... + g(2*n+1)*g(2*n+1)
// 输入描述
// 一个正整数n(2≤n≤1e9)
// 输出描述
// 输出答案对10007取模的结果
// 样例输入
// 3
// 样例输出
// 28
// 提示
// 样例解释
// 如n=3,需求出g(2)*g(2)+ g(3)*g(3) + g(4)*g(4) + ... + g(7)*g(7)
// g(2) = 1, g(3) = 1, g(4) = 2, g(5) = 2, g(6) = 3, g(7) = 3
// 1*1+1*1+2*2+2*2+3*3+3*3=28
#include<iostream>
using namespace std;
int main(){
long n;cin>>n;
const long e = 10007;
// cout<< (2*n%e*(n+1)%e*(2*n%e+1)%e/6%e)%e; //45%
// long a = n%e, b=(n+1)%e, c=(2*n+1)%e;
// cout<<((((a*b)%e)*c)%e/3)%e; // 55%
// long long a = n%e, b=(n+1)%e, c=(2LL*n+1)%e;
// cout<<((((a*b)%e)*c)%e/3)%e; // 90.91%
// long long nn=n;
// long long a = nn%e, b=(nn+1)%e, c=(2*nn+1)%e;
// cout<<((((a*b)%e)*c)%e/3)%e; // 55%
// long nn=n%e;
// long long a = nn%e, b=(nn+1)%e, c=(2LL*nn+1)%e;
// cout<<((((a*b)%e)*c)%e/3)%e; // 55%
// long nn=n%e;
// long long a = nn%e, b=(nn+1)%e, c=(2LL*nn+1)%e;
// cout<<(((a*b)%e)*c)/3%e; // 82%
long long nn=n%e;
long long a = nn%e, b=(nn+1)%e, c=(2*nn+1)%e;
cout<<((a*b*c)/3%e)%e; // 100%
return 0;
}
// final cpp
#include<iostream>
using namespace std;
int main(){
long long n;cin>>n;
const long long e = 10007;
long long nn=n%e;
cout<<nn*(nn+1)*(2*nn+1)/3%e;
return 0;
}
# 之前cpp放弃了,测了很多次python先达到了100%
n = input('')
n = int(n)
e = 10007
# 之前py怎么写都只有 36%、45%
# n = int(2*n%e*(n+1)%e*(2*n%e+1)%e/6)%e
# n = int(n%e*(n+1)%e*(2*n%e+1)%e/3)%e # 55%
# print(n)
# 100%
a = n % e
b = (n+1) % e
c = (2*n+1) % e
n = int(int(a*b*c)/3)
print(int(n % e))
# 64%
# print(int(2 * n % e *(n+1) % e * (2*n+1) / 6) % e)
#之江实验室##笔试##23秋招##23届秋招##23届秋招笔面经#