diff options
-rwxr-xr-x | gcd.js | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -0,0 +1,19 @@ +#!/usr/bin/node + + +function gcd2(a, b) { + return b == 0 ? a : gcd2(b, a % b); +} + +// Don't use parseInt() itself in map() - it used to have 2 arguments +var nums = process.argv.map( + function(s) {return parseInt(s)} + ).filter( // It will not work if this script or node itself is named as number ;-) + function(t) {return !isNaN(t)} + ); + +if (nums.length > 0) { + var GCD = nums.reduce(gcd2); // Yeah, we could use lambda here + console.log(GCD); +} + |