Logo

Programming-Idioms

  • Rust
  • Php

Idiom #74 Compute GCD

Compute the greatest common divisor x of big integers a and b. Use an integer type able to handle huge numbers.

extension=gmp
$x = gmp_gcd($a, $b);

both $a and $b must be instances of the GMP class
extern crate num;

use num::Integer;
use num::bigint::BigInt;
let x = a.gcd(&b);

Uses the num crate's Integer trait.
#include <gmp.h>
mpz_t _a, _b, _x;
mpz_init_set_str(_a, "123456789", 10);
mpz_init_set_str(_b, "987654321", 10);
mpz_init(_x);

mpz_gcd(_x, _a, _b);
gmp_printf("%Zd\n", _x);

New implementation...
< >
deleplace