diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-11-14 20:06:53 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-11-14 20:06:53 +0400 |
commit | 4b5bdac9bd93ac97e3f99a14d3d28a70cd33607c (patch) | |
tree | 33007911120881a1e8fad2231c251d4ca961eb8e | |
parent | 2652e156a2823a01b02e3ccdd7da106ea2778178 (diff) | |
download | gcd-4b5bdac9bd93ac97e3f99a14d3d28a70cd33607c.tar.gz |
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") + } + } +} |