Napisz funkcję, która będzie wykorzystywała algorytm Euklidesa do znajdowania największego wspólnego dzielnika (NWD) dwóch liczb naturalnych.

Algorytm Euklidesa nie wymaga rozkładania liczb na czynniki pierwsze. Wykorzystywana jest zależność: NWD dwóch liczb (a, b) jest równy a gdy b=0, lub jest równy NWD(b, a mod b) gdy b>=1.

function nwd(m,n:word):word;
var r:word;

begin
while m>0 do
begin
r:=n mod m;
n:=m;
m:=r;
end;

nwd:=n;
end;

Powyżej jest zamieszczony kod funkcji algorytmu Euklidesa, teraz zobaczmy jak ją wywołać - czyli użycie w praktyce:

begin
writeln('Podaj m');
readln(m);

writeln('Podaj n');
readln(n);

writeln(nwd(m,n));
readln;
end.
↑ Skocz do góry

Opublikowano: 8 grudnia 2010. Autor: Bartosz Stefanicki.
Tagi: , .

Dodaj komentarz

2 komentarzy do "Algorytm Euklidesa – obliczanie największego wspólnego dzielnika (NWD)"

avatar
Sortuj wg:   najnowszy | najstarszy | oceniany
Connie
Gość
Nie ma sensu uczyć sięa0Pascala. Proponuję FORTRANA bardzo poodbny, ale w odrf3żnieniu do Pascala używany. Do ściągnięcia z sieci darmowy kompilator taki jak: g77 (wersja z 77 roku jedna z pierwszych), gfortran wersja darmowa na bazie FORTRANA 90, na stronie MacResearch jest wersja gfortranu z pluginem, ktf3ry umożliwia programownie pod Xcode jedyny minus to na razie nie działa pod Leo.Dla Linuxa do ściągnięcia z repozytorif3w bez problemu (gfortran i pewnie g77).Jeśli zapragnęłabyś zostać kiedyś fizykiem lub pracować z tym środowiskiem to znajomość FORTRANA na pewno się przyda.Jeśli nie to od razu proponuję uczyć się C lub C++.Moim zdaniem na Pascala… Czytaj więcej »
wpDiscuz