All pastes #168528 Raw Edit

Something

public text v1 · immutable
·published 2006-09-13 02:18 UTC
rendered paste body
// sumfoursquares.cpp
// enumerate all possible strictly increasing quadruplets of integers whose squares sum to a given n
// by: flamingspinach
// 2006-09-13

#include <iostream>
using namespace std;

// UTTERLY horrible brute force method :D
void SumFourSquares(int n) {
    int i[4] = {-n, -n, -n, -n};
    while (i[0]*i[0] > n) { ++i[0]; ++i[1]; ++i[2]; ++i[3]; }
    for(;;) {
        if (i[0]*i[0] + i[1]*i[1] + i[2]*i[2] + i[3]*i[3] == n)
            cout << i[0] << " " << i[1] << " " << i[2] << " " << i[3] << " --> "
                 << i[0]*i[0] << " " << i[1]*i[1] << " " << i[2]*i[2] << " " << i[3]*i[3] << endl;
        if(++i[3]*i[3] > n)
            if((i[3] = ++i[2]) * i[2] > n)
                if((i[2] = ++i[1]) * i[1] > n)
                    if((i[1] = ++i[0]) * i[0] > n)
                        break;
    } return;
}

int main () {
    int x;
    cout << "Please enter an integer n: ";
    cin >> x;
    
    SumFourSquares(x);
    
    system("pause");
    return(0);
}