pub fn gcd(mut a: usize, mut b: usize) -> usize {
  assert!(a != 0 || b != 0);
  while b != 0 {
    let tmp = b;
    b = a % b;
    a = tmp;
  }
  a
}
/// Returns the greatest common divisor of `a` and `b` using Euclid's algorithm.
/// Panics if both are zero.
Returns the greatest common divisor of `a` and `b` using Euclid's algorithm.
Panics if both are zero.
Returns the greatest common divisor of ` a ` and ` b ` using Euclid ' s algorithm . Panics if both are zero .
pub fn gcd(mut a: usize, mut b: usize) -> usize {
  assert!(a != 0 || b != 0);
  while b != 0 {
    let tmp = b;
    b = a % b;
    a = tmp;
  }
  a
}
pub fn gcd ( mut a : usize , mut b : usize ) -> usize { assert ! ( a 0 b 0 ) ; while b != 0 { let tmp = b ; b = a % b ; a = tmp ; } a }
Returns the greatest common divisor of `a` and `b` using Euclid's algorithm.
Returns the greatest common divisor of ` a ` and ` b ` using Euclid ' s algorithm .
a
usize
b
usize
a
usize
b
usize