int search(int number, int result[]) { int rt0,rt1,rt2,rt3; int rest1,rest2,rest3; int i,j,k,m; rt0 = (int)sqrt(number); for ( i=rt0 ; i > 0 ; i-- ) { result[0] = i; rest1 = number - i*i; if ( rest1 == 0 ) return 1; rt1 = (int)sqrt(rest1); for ( j=rt1 ; j > 0 ; j-- ) { result[1] = j; rest2 = rest1 - j*j; if ( rest2 == 0 ) return 2; rt2 = (int)sqrt(rest2); for ( k=rt2 ; k > 0 ; k-- ) { result[2] = k; rest3 = rest2 - k*k; if ( rest3 == 0 ) return 3; rt3 = (int)sqrt(rest3); for ( m=rt3 ; m > 0 ; m-- ) { result[3] = m; if ( (rest3-m*m) == 0 ) return 4; } } } } return 0; }