From 4b5bdac9bd93ac97e3f99a14d3d28a70cd33607c Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Thu, 14 Nov 2013 20:06:53 +0400 Subject: Scala --- gcd.scala | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 gcd.scala 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") + } + } +} -- cgit v1.2.3