#include #include using namespace std; #define MAX 100000000ll set squares; set solutions; int main() { for (long long i=1; i*i<=MAX; i++) { squares.emplace(i*i); } long long v = 0; for (long long x=1; x*x<=MAX; x++) { for (long long y=1; x*x+2*y*y<=MAX; y++) { if (squares.count(x*x+y*y)) { for (long long z=1; z<=x && (v=(x*x+2*y*y+z*z))<=MAX; z++) { if (squares.count(v) && squares.count(y*y+z*z)) { solutions.emplace(v); cerr << "#" << v << " " << x << " " << y << " " << z << endl; } } } } } int n = 0; for (set::iterator it=solutions.begin(); it!=solutions.end(); ++it) { cout << ++n << ' ' << *it << endl; } return 0; }