Poniższy program ma obliczyć największy wspólny dzielnik dwóch liczb. <ort>kożysta </ort>z algorytmu euklidesa. Dla pewnyw wartości działa (8 2) a dla innych już nie (12 9). Dlaczego? Czy ma to coś wspólnego z wyciaganiem reszty (%)?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf ("%d", &n);//Program ma wykonać n pentli
int i = 0;
int wynik[n];//wyniki beda zapisywane do tej tablicy
for(; i < n; i++)
{
int a;
int b;
scanf ("%d", &a);//pobranie wartosci zmiennych
scanf ("%d", &b);
for(; a % b != 0; )
{
if (a > b){a = a % b;}//wybieranie reszty z dzielenia i przypisanie jej jako
if (a <= b){b = b % a;}//wartosc wiekszej liczby
}
if (a >= b){if (b > 0){ wynik[i] = b;}}//wynikiem jest mniejsza liczba wieksza od 0
if (a < b){if (a > 0){wynik[i] = a;}}
}
for(i = 0; i < n; i++)//wypisanie wynikow
{
printf ("%d", wynik [i],"\n");
}
getchar();
getchar();
return 0;
}