algorytm euklidesa

0

treść zadania: rozwiąż zadanie Największy wspólny dzielnik - algorytm Euklidesa w
następujący sposób:
i. dla danych liczb a i b, przez M oznacz większą, a prze m mniejszą
z nich
ii. oblicz resztę r z dzielenia M przez m
iii. gdy reszta jest zerem, to m jest szukanym NWD; w przeciwnym
razie w miejsce M podstaw m, a w miejsce m podstaw r i przejdź
do kroku (ii)

Wejście programu składa się z 10 par liczb naturalnych a,b (0 <= a,b <= 2147483647). Obie liczby są rozdzielone znakiem spacji.
Na wyjściu powinniśmy podać jedną liczbę, będącą największym wspólnym dzielnikiem liczb a i b.

to jest mój kod, niestety coś nie działa i nie mam pojęcia czemu



int main ()
 {
    for(int i=1; i<=10;i++){
        int a,b;
            scanf("%d %d", &a, &b);
        int M, m;
        if(a>b){
            M=a;
            m=b;
        }
        else{
            M=b;
            m=a;
        }

        int r;
        r=M%m;
        while(r!=0){
            M=m;
            m=r;
        }
        printf("%d", m);
    }
    return 0;
} ```
2

Zacznij od porządnej definicji „coś nie działa” — nie kompiluje się? Z jakim błędem? Podaje zły wynik? Dla jakich danych wejściowych? Wysypuje się w trakcie działania? Dla jakich danych i co zgłasza?

0
Althorion napisał(a):

Zacznij od porządnej definicji „coś nie działa” — nie kompiluje się? Z jakim błędem? Podaje zły wynik? Dla jakich danych wejściowych? Wysypuje się w trakcie działania? Dla jakich danych i co zgłasza?

nie działa dla par 47 i 9, 41 i 3, 43 i 4...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0