Greatest common divisor: Difference between revisions

no edit summary
(added FunL)
No edit summary
Line 3,118:
output = gcd(1071,1029)
end</lang>
 
=={{header|Sparkling}}==
<lang sparkling>function factors(n) {
var f = {};
 
for var i = 2; n > 1; i++ {
while n % i == 0 {
n /= i;
f[i] = f[i] != nil ? f[i] + 1 : 1;
}
}
 
return f;
}
 
function GCD(n, k) {
let f1 = factors(n);
let f2 = factors(k);
 
let fs = map(f1, function(factor, multiplicity) {
let m = f2[factor];
return m == nil ? 0 : min(m, multiplicity);
});
 
let rfs = {};
foreach(fs, function(k, v) {
rfs[sizeof rfs] = pow(k, v);
});
 
return reduce(rfs, 1, function(x, y) { return x * y; });
}
 
function LCM(n, k) {
return n * k / GCD(n, k);
}</lang>
 
=={{header|Standard ML}}==
Anonymous user