while (b)
swap(a %= b, b);
return a;
Ten algorytm wyznacza NWD, ale kompletnie go do końca zrozumieć. Tzn, wcześniej usiłowałam zrobić to za pomocą modulo i dwóch if, ale nie był to zbyt optymalny kod.
while (b) // co oznacza ten zapis, na jakiej zasadzie pętla jest zależna od b?
swap(a %= b, b); //dzięki modulo na samym końcu, wychodzi wynik i 0. Matematycznie wszystko wygląda w porządku, ale sama praca pętli już nie jest taka jasna.
Czy ktoś mógłby pomóc mi to rozszyfrować? :)