Greatest Common Divisor, recursive & iterative
// recursive
var gcd = function(a, b) {
if ( ! b) {
return a;
}
return gcd(b, a % b);
};
// iterative
function gcd(a,b) {
if (a < 0) a = -a;
if (b < 0) b = -b;
if (b > a) {var temp = a; a = b; b = temp;}
while (true) {
a %= b;
if (a == 0) return b;
b %= a;
if (b == 0) return a;
}
}