Skip to content

Instantly share code, notes, and snippets.

@zacharyliu
Created January 26, 2015 07:03
Show Gist options
  • Save zacharyliu/db81074225ddc921dfd1 to your computer and use it in GitHub Desktop.
Save zacharyliu/db81074225ddc921dfd1 to your computer and use it in GitHub Desktop.
Elucidate Solution (Node.js)
var fs = require('fs');
var e = fs.readFileSync('elucidate.txt', 'utf8');
var gcd = function(a, b) {
if ( ! b) {
return a;
}
return gcd(b, a % b);
};
var gcdArray = function(nums) {
var a = nums[0];
for (var i=1; i < nums.length; i++) {
a = gcd(a, nums[i]);
}
return a;
};
function lcm(n1,n2) {
return n1*n2/gcd(n1,n2);
}
var lcmArray = function(nums) {
var a = nums[0];
for (var i=1; i < nums.length; i++) {
a = a * nums[i];
}
return a / gcdArray(nums);
};
var lcmArray2 = function(nums) {
var a = nums[0];
for (var i=1; i < nums.length; i++) {
a = lcm(a, nums[i]);
}
return a;
};
// var e = "(1,2,3),(4,5,6),(7,8,9)";
e = e.substring(1);
allNums = [];
e.split("(").forEach(function(t) {
if (t[t.length-1] == ",") t = t.substring(0, t.length-1);
t = t.replace(")", "").split(",");
t = t.map(function(a){return +a;});
var g = gcdArray(t);
if (allNums.indexOf(g) == -1) {
allNums.push(g);
}
});
// console.log(lcmArray(q));
console.log(allNums);
console.log(lcmArray(allNums));
console.log(lcmArray2(allNums));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment