9) Special Pythagorean triplet
A Pythagorean triplet is a set of three natural numbers, a b c, for which, a2 + b2 = c2 For example, 32 + 42 = 9 + 16 = 25 = 52. There exists exactly one Pythagorean triplet for which a + b + c = 1000. Find the product abc.
by fosco
JavaScript
var s = 1000,
value = 0;
console.time('Brute');
for (var a = 1; a <= s; a++) {
for (var b = a; b <= s; b++) {
var c = Math.sqrt(a * a + b * b);
if (a + b + c === s) {
value = a * b * c;
break;
}
}
if (value !== 0) {
break;
}
}
console.timeEnd('Brute'); // 5.781ms
console.log(value); //31875000
var s = 1000,
value = 0,
a = 0,
b = 0,
c = 0;
//http://en.wikipedia.org/wiki/Pythagorean_triple
console.time('M and N');
for (var n = 1; n <= s; n++) {
for (var m = n; m <= s; m++) {
a = m * m - n * n;
b = 2 * m * n;
c = m * m + n * n;
if (a + b + c === s) {
value = a * b * c;
break;
}
}
if (value !== 0) {
break;
}
}
console.timeEnd('M and N'); // 0.190 ms
console.log(value); //31875000