21 kwietnia 2005 22:24Obliczanie NWDPaweł Gniadkowski [Kardon] Obliczanie NWD dwóch liczb polega na odejmowaniu od liczby większej tej mniejszej aż do czasu, gdy obie będą równe.
Zapewne powyższa formułka jest dla Ciebie kompletnie niezrozumiała (dla mnie za pierwszym razem też była). Rozpatrzmy przykład: Szukamy NWD liczb: 26 i 136
Odejmujemy od większej mniejszą: 136 - 26 = 110 >>> mamy liczby: 26 i 110
Odejmujemy od większej mniejszą: 110 - 26 = 84 >>> mamy liczby: 26 i 84
Odejmujemy od większej mniejszą: 84 - 26 = 58 >>> mamy liczby: 26 i 58
Odejmujemy od większej mniejszą: 58 - 26 = 32 >>> mamy liczby: 26 i 32
Odejmujemy od większej mniejszą: 32 - 26 = 6 >>> mamy liczby: 26 i 6
Odejmujemy od większej mniejszą: 26 - 6 = 20 >>> mamy liczby: 20 i 6
Odejmujemy od większej mniejszą: 20 - 6 = 14 >>> mamy liczby: 14 i 6
Odejmujemy od większej mniejszą: 14 - 6 = 8 >>> mamy liczby: 8 i 6
Odejmujemy od większej mniejszą: 8 - 6 = 2 >>> mamy liczby: 2 i 6
Odejmujemy od większej mniejszą: 6 - 2 = 4 >>> mamy liczby: 2 i 4
Odejmujemy od większej mniejszą: 4 - 2 = 2 >>> mamy liczby: 2 i 2
Kończymy odejmowanie, bo obie liczby są równe. Szukanym NWD jest liczba 2
Myslę, że algorym jest zrozumiały i nie trzeba niczego tlumaczyć. Implementacja w C++:#include <iostream>
using namespace std;
int main()
{
int n,m;
cout << "Podaj liczby do NWD:\n";
cin >> n >> m;
while (n!=m)
{
if (m>n)
{
m-=n;
}
else
{
n-=m;
}
}
cout << n;
}