алати |
Еуклидов алгоритамЕуклидов алгоритам је поступак за налажење највећег заједничког делиоца (НЗД) два природна броја. Носи име по старогрчком математичару Еуклиду.
[уреди] АлгоритамЗа налажење највећег заједничког делиоца два броја А и Б НЗД(А,Б) примењује се следећи поступак.
Укратко за налажење НЗД два броја понављамо поступак за мањи и разлику два броја све док не добијемо два иста броја, што представља коначно решење. То се може описати следећим псеудокодом
function nzd(a, b)
while a ≠ b
if a > b
a := a - b
else
b := b - a
return a
Пример: НЗД(39,6)=НЗД(33,6)=НЗД(27,6)=НЗД(21,6)=НЗД(15,6)=НЗД(9,6)=НЗД(3,6)=НЗД(3,3)=3 [уреди] Модификација алгоритмаЗначајно ефикаснији алгоритам се добија ако се уместо одузимања користи остатак при дељењу. У горњем примеру се лепо види да уствари од броја 39 одузимамо 6 све док не добијемо мањи број од 6. Значајно ефикаснији алгоритам је: НЗД(А,Б)=
где је mod остатак при дељењу броја А бројем Б. псеудокод
function nzd(a, b)
if b = 0 return a
else return nzd(b, a mod b)
[уреди] Шира применаЕуклидов алгоритам може се применити и на неке друге ентитете. На пример може се применити и за одређивање НЗД за два полинома. [уреди] ПримерНЗД два полинома P(x)=x5+x4-x3-3x2-3x-1 и Q(x)=x4-2x3-x2-2x+1 налазимо на следећи начин користећи Еуклидов алгоритам (уз скраћивање и проширење):
|