Skip to content

Instantly share code, notes, and snippets.

@1kohei1
Created August 13, 2015 01:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 1kohei1/50a88f0f834903305c83 to your computer and use it in GitHub Desktop.
Save 1kohei1/50a88f0f834903305c83 to your computer and use it in GitHub Desktop.
a^3+b^3=c^3+d^3
function algorithmPractice() {
var n = 100;
var sums = {};
var results = [];
for (var c = 1; c < n; c++) {
for (var d = 1; d < n; d++) {
var result = Math.pow(c, 3) + Math.pow(d, 3);
if (!sums.hasOwnProperty(result)) {
sums[result] = [];
}
var smaller = c < d ? c : d;
var bigger = c < d ? d : c;
// Prevent adding the same pair. e.g., (2, 3) and (3, 2)
var shouldAdd = true;
for (var i = 0; i < sums[result].length; i++) {
if (sums[result][i][0] === smaller && sums[result][i][1] === bigger) {
shouldAdd = false;
break;
}
}
if (shouldAdd) {
sums[result].push([smaller, bigger]);
}
if (sums[result].length >= 2 && results.indexOf(result) === -1) {
results.push(result);
}
}
}
// Print out results.
for (var i = 0; i < results.length; i++) {
for (var j = 0; j < sums[results[i]].length - 1; j++) {
for (var k = j + 1; k < sums[results[i]].length; k++) {
var one = sums[results[i]][j];
var two = sums[results[i]][k];
console.log(one[0] + ', ' + one[1] + ', ' + two[0] + ', ' + two[1]);
}
}
}
}
algorithmPractice();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment