这道题就无脑写循环:
但要优化两点:
b<=sqrt(n-a*a)和c<=sqrt(n-a*a-b*b)
又不然就扣一半。
CODE:
#include<bits/stdc++.h>
#define long long int
using namespace std;
int n,a,b,c,sum,s=0,aa,bb,cc;
signed main(){
cin>>n;
for(int a=0;a<=sqrt(n);a++){
aa=a*a;
for(int b=0;b<=sqrt(n-aa);b++){
bb=b*b;
for(int c=0;c<=b<=sqrt(n-aa-bb);c++){
int d=sqrt(n-a*a-b*b-c*c);
if(a*a+b*b+c*c+d*d==n){
s++;
}
}
}
}
cout<<s;
return 0;
}