Greatest common divisor: Difference between revisions

(→‎{{header|PowerShell}}: port short Python implementation)
Line 1,375:
 
=={{header|JavaScript}}==
Iterative. implementation
<lang javascript>function gcd(a,b) {
a = if Math.abs(a < 0) a = -a;
b = if Math.abs(b < 0) b = -b;
 
if (b > a) {var temp = a; a = b; b = temp;}
if (b while> (truea) {
var temp = a %= b;
if (a == 0) return b;
b %= atemp;
}
if (b == 0) return a;
 
}
ifwhile (btrue) {
}a else%= {b;
if (a === 0) { return b; }
b }%= a;
if (b === 0) { return a; }
}
}</lang>
 
Recursive.
<lang javascript>function gcd_rec(a, b) {
return b ? gcd_rec(b, a % returnb) : Math.abs(a);
if (b) {
return gcd_rec(b, a % b);
} else {
return Math.abs(a);
}
}</lang>
 
ForImplementation that works on an array of integers.
<lang javascript>function GCD(Aarr) // A is an integer array (e.g. [57,0,-45,-18,90,447]){
{ var i, y,
var n = Aarr.length, x = A[0] < 0 ? -A[0] : A[0];
for (var ix = 1Math.abs(arr[0]); i < n; i++)
 
{ var y = A[i] < 0 ? -A[i] : A[i];
whilefor (xi && y){ x > y ? x %= y1; :i y< %= xn; }i++) {
y x += yMath.abs(arr[i]);
 
}
returnwhile (x; && y) {
if (bx > ay) {var? tempx %= a;y a = b;: by %= tempx;}
}
x += y;
}
return x;
}
 
/* /For example:
GCD([57,0,-45,-18,90,447]); -//=> 3
*/</lang>
 
=={{header|Joy}}==
Anonymous user