题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1429
题意:
设 F(x)=∑xi=1i ,求不定方程 F(x)+F(y)+F(z)+F(w)=N 的自然数解个数。
0≤N≤1012 。
题解:
设 x2+y2+z2+w2=N 的自然数解个数为 S(n) ,N的约数之和为 d(N) ,由雅可比的四平方和定理Jacobi’s four-square theorem可知
代码:
#include <cstdio>
typedef long long LL;
LL n, ans;
int main()
{
scanf("%lld", &n);
n = (n << 1) + 1;
ans = n + 1;
for(LL i = 3; i <= n / i; ++i)
if(n % i == 0)
{
ans += i;
if(i != n / i)
ans += n / i;
}
printf("%lld\n", ans);
return 0;
}