C++ 拉格朗日';模下的s四平方定理
给定一个整数n,打印出A、B、C和D的整数值的所有可能组合,它们在给定整数p下解方程A^2+B^2+C^2+D^2=nC++ 拉格朗日';模下的s四平方定理,c++,math,number-theory,modular-arithmetic,C++,Math,Number Theory,Modular Arithmetic,给定一个整数n,打印出A、B、C和D的整数值的所有可能组合,它们在给定整数p下解方程A^2+B^2+C^2+D^2=n int和(int n) { 内部a、b、c、d、na、nb、nc、nd; 整数计数=0; 对于(a=0,na=n;a*an=n%p;->n%=p;;)@George,但这将改变n,并相应地改变a,b,c,d。这给了我错误的答案 int sum(int n) { int a, b, c, d, na, nb, nc, nd; int count = 0; fo
int和(int n)
{
内部a、b、c、d、na、nb、nc、nd;
整数计数=0;
对于(a=0,na=n;a*an=n%p;
->n%=p;
;)@George,但这将改变n
,并相应地改变a,b,c,d
。这给了我错误的答案
int sum(int n)
{
int a, b, c, d, na, nb, nc, nd;
int count = 0;
for (a = 0, na = n; a * a <= na; a++)
{
for (b = a, nb = na - a * a; b * b <= nb; b++)
{
for (c = b, nc = nb - b * b; c * c <= nc; c++) {
nd = nc - c * c;
d = sqrt (nd);
if (d * d == nd)
{
cout<< a<< b<< c<< d;
count++;
}
}
}
}
cout<<"Found solutions :"<< count;
}