因为a<=b<=c<=d 所以a*a<=n/4;
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int f[]=new int[n+1];
for(int c=0;c*c*2<=n;c++){
for(int d=c;d*d+c*c<=n;d++){
if(f[d*d+c*c]==0) f[d*d+c*c] = c+1; //3^2+4^2=0^2+5^2,我们需要的是0+5平方和,所以要判重
//c+1是因为后续找n-a+b平方和的时候需要判断有没有对应c+d平方和,
//以0表示不存在,所以+1就能把f[]的值映射到1-根号n之间;
}
}
for(int a=0;a*a*4<=n;a++){
for(int b=a;b*b+a*a<=n/2;b++){
int cd=n-a*a-b*b;
if(f[cd]!=0){
int c=f[cd]-1;//之前映射时+1,现在减一就是c
int d=(int)(Math.sqrt(cd-c*c));//25开根后可能是4.999999,强转是向下取整;
//但是sqrt方法的精度很高不会取到小数
System.out.println(a+" "+b+" "+c+" "+d);
return ;
}
}
}
}
}