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);
(defn gcd [a b]
(if (zero? b)
a
(recur b (mod a b))))
unsigned long long int GCD(unsigned long long int a, unsigned long long int b)
{
unsigned long long int c=a%b;
if(c==0)
return b;
return GCD(b, c);
}
int gcd(int a, int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int gcd(int a, int b)
{
while (b != 0)
{
int t = b;
b = a % t;
a = t;
}
return a;
}
BigInt gcd(in BigInt x, in BigInt y) pure {
if (y == 0)
return x;
return gcd(y, x%y);
}
gcd(a, b);
int gcd(int a, int b) {
while (b != 0) {
var t = b;
b = a % t;
a = t;
}
return a;
}
defmodule Gcd do
def gcd(x, 0), do: x
def gcd(x, y), do: gcd(y, rem(x,y))
end
x = Gcd.gcd(a, b)
function gcd(m,n) result(answer)
implicit none
integer(kind=int64),intent(in) :: m, n
integer(kind=int64) :: answer,irest,ifirst
ifirst=iabs(m)
answer=iabs(n)
if(answer.eq.0)then
answer=ifirst
else
do
irest = mod(ifirst,answer)
if(irest == 0) exit
ifirst = answer
answer = irest
enddo
answer= iabs(answer)
endif
end function gcd
gcd a b
| a==b =a
| a>b = gcd(a-b) b
| otherwise = gcd a (b-a)
gcd x y = gcd' (abs x) (abs y)
where
gcd' a 0 = a
gcd' a b = gcd' b (a `rem` b)
const gcd = (a, b) => b === 0 ? a : gcd (b, a % b)
function gcd(a, b)
return b==0 and a or gcd(b,a%b)
end
function gcd(x, y)
if (y == 0) then
return x
else
return gcd(y, x%y)
end
end
function GCD(a,b:int64):int64;
var t:int64;
begin
while b <> 0 do
begin
t := b;
b := a mod b;
a := t;
end;
result := a;
end;
sub gcd {
my ($A, $B) = @_;
return 0 == $B
? $A
: gcd($B, $A % $B);
}
Dim x = BigInteger.GreatestCommonDivisor(a, b)