Print all positive solutions ot the equation a^3 + b ^ 3 = c ^ 3 + d ^ 3 where a , b, c, and d are integers between 1 and 1000.
optimized solution: by c++
#include <iostream>
#include <string>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
int main()
{
int a, b, c, d;
constexpr int n = 1000;
std::unordered_map<int, std::vector<std::pair<int, int>>> table;
for (c = 1; c <= n; ++c)
for (d = 1; d <= n; ++d) {
int result = d * d * d + c * c * c;
table[result].push_back(std::make_pair(c, d));
}
for(auto &entry : table) {
auto &list = entry.second;
for (auto &pair1 :list)
for (auto &pair2: list)
cout << pair1.first << " " << pair1.second << " " << pair2.first << " " << pair2.second << endl;
}
return 0;
}