忽明忽暗|2019 蓝桥杯省赛 A 组模拟赛(一)第8题
最关键的点是要知道:因数个数为奇数的数都是完全平方数,之后套用求前n项平方和的模版就可以解决。
#include<iostream>
#include<math.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + 7;
int main(){
ll n,t,ans;
cin>>n;
t = sqrt(n);
ans = t * (t + 1) / 2;
ans = ans % 3 == 0 ? ans / 3 % mod * (2 * t + 1) % mod:ans % mod * (2 * t + 1) / 3 % mod;
cout<<ans<<endl;
return 0;
}