gmp_gcd
funkcja
Oblicza największy wspólny dzielnik (NWD) dwóch dowolnie dużych liczb całkowitych GMP.
gmp_gcd(GMP|int|string $num1, GMP|int|string $num2): GMP
gmp_gcd (ang. greatest common divisor) oblicza największy wspólny dzielnik dwóch liczb i zwraca wynik jako obiekt GMP. Algorytm Euklidesa zastosowany przez GMP działa wydajnie nawet na liczbach o setkach cyfr — niezbędne przy upraszczaniu ułamków, generowaniu kluczy RSA czy algorytmach kryptograficznych.
<?php
declare(strict_types=1);
echo gmp_gcd(48, 18); // wynik: 6
echo gmp_gcd(100, 75); // wynik: 25
// NWD bardzo dużych liczb
$a = '123456789012345678901234567890';
$b = '987654321098765432109876543210';
echo gmp_gcd($a, $b); // wynik: 9000000000900000000090
Argumenty mogą być obiektami GMP, liczbami int lub ciągami znaków. Wynik jest zawsze dodatni. Jeśli obie liczby wynoszą 0, funkcja zwraca 0. NWD przydaje się też do sprawdzenia wzajemnej pierwszości dwóch liczb — jeśli gmp_cmp(gmp_gcd($a, $b), 1) === 0, liczby są względnie pierwsze.