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