diff options
Diffstat (limited to 'gcd.scala')
-rw-r--r-- | gcd.scala | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcd.scala b/gcd.scala new file mode 100644 index 0000000..69f86a6 --- /dev/null +++ b/gcd.scala @@ -0,0 +1,24 @@ +/* + Synopsis: + + # scalac gcd.scala + # scala gcd 11 22 33 121 + + // prints 11 + +*/ +object gcd { + def gcd2(a: Int, b: Int): Int = b match { + case 0 => a + case _ => gcd2(b, a % b) + } + + def main(args: Array[String]) { + try { + val numbers = args map Integer.parseInt + println(numbers.foldRight(0)((a, b) => gcd2(a, b))) + } catch { + case e: NumberFormatException => println("Not a number") + } + } +} |