Menu
CoddyTech

Greatest Common Divisor

PoczątkującyMatematyka i symulacjapython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz dwie dodatnie liczby całkowite a i b. Zwróć ich największy wspólny dzielnik: największą liczbę całkowitą, która dzieli obie liczby bez reszty.

Na przykład liczby, które dzielą zarówno 8, jak i 12, to 1, 2 i 4, więc odpowiedzią jest 4.

Funkcja

gcd(a: integer, b: integer) → integer
ainteger
pierwsza dodatnia liczba całkowita
binteger
druga dodatnia liczba całkowita
Zwracainteger
największa liczba całkowita, która dzieli zarówno a, jak i b

Ograniczenia

  • 1 ≤ a ≤ 109
  • 1 ≤ b ≤ 109

Przykłady

Wejście
a = 12b = 18
Wyjście
6
Wyjaśnienie
Dzielnikami liczby 12 są 1, 2, 3, 4, 6 i 12; dzielnikami liczby 18 są 1, 2, 3, 6, 9 i 18. Największy wspólny dzielnik to 6.

lock icon+14 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy potrafisz rozszerzyć algorytm Euklidesa tak, aby zwracał również liczby całkowite x i y spełniające równanie a × x + b × y = gcd(a, b)?

Zresetuj kod
def gcd(a, b):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

a = 12
b = 18

Oczekiwane

6