Name: Anonymous 2013-02-20 23:38
post your favourite implementation ``in symta''
"Hello World!"
function gcd(numbers) {
function baseGCD(x, y) {
var a = Math.min(x, y), b = Math.max(x, y), r;
return (r = b % a) ? r : a;
}
return (numbers.length === 2)
? baseGCD(numbers[0], numbers[1])
: gcd( [gcd(numbers.slice(0, -1))].concat(numbers[numbers.length-1]) );
}
function gcd(numbers) {
return numbers.reduce(function(x, y) {
var a = Math.min(x, y), b = Math.max(x, y), r;
return (r = b % a) ? r : a;
});
}
say [gcd] 12,144,48; #Prints 12
say [gcd] 54,24; #Prints 6
function gcd(a) {
return a.reduce(function (a, b) {
if (!a) return b;
for (; b;) a > b ? a -= b : b -= a;
return a
})
}a though. My bad