时间超限45分
四方定理 ** _站外**_
给定一个自然数n,请输出n的所有四平方拆分方案。
Input
每行一个非负整数n(<=5e6),不超过10行。
Output
对于每个n,输出若干行:
每行四个由小到大排列的自然数,表示一种拆分方案。
如果有多种方案,按照字典序输出。
输入数据
1
25
输出数据
0 0 0 1
0 0 0 5
0 0 3 4
1 2 2 4
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int n;cin>>n;){
for(int a=0;a*a<=n/4;a++){
for(int b=a;b*b<=n/3;b++){
for(int c=b;c*c<=n/2;c++){
for(int d=c;d*d<=n/1;d++){
if(a*a+b*b+c*c+d*d==n){
printf("%d %d %d %d\n",a,b,c,d);
}
}
}
}
}
}
return 0;
}