From d0577298fd2be72ec4e51ae4703ec563e63119a6 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Wed, 10 May 2017 22:02:56 +0300 Subject: Rust --- gcd.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 gcd.rs diff --git a/gcd.rs b/gcd.rs new file mode 100644 index 0000000..9e73a44 --- /dev/null +++ b/gcd.rs @@ -0,0 +1,27 @@ +use std::env; + +fn gcd2(a: u64, b: u64) -> u64 +{ + let mut a1 = a; + let mut b1 = b; + + while b1 != 0 { + let c1 = b1; + b1 = a1 % b1; + a1 = c1; + } + + a1 +} + + +fn main () +{ + // XXX skip(1) to skip program name: + let nums = env::args().skip(1).map(|s| s.parse().unwrap()); + + let gcd = nums.fold(0, |g, n| gcd2(g, n)); + + println!("{}", gcd); +} + -- cgit v1.2.3