Реализации алгоритмов/Бинарный алгоритм вычисления НОД: различия между версиями

Перейти к навигации Перейти к поиску
(Javascript)
 
<source lang="pascal">
function GCD (a, b: integerInteger): integerInteger;
begin
if a = 0 then
GCD := b
else if b = 0 then
GCD := a
else if a = b then
GCD := a
else if (a = 1) or (b = 1) then
GCD := 1
else if (a modand 2 = 01) and (b mod 2 = 0) then
GCD:= 2*GCD(a div 2,if (b divand 21) = 0 then
else if (a mod 2 = 0) and GCD := GCD(ba modshr 21, <>b 0shr 1) thenshl 1
GCD:= GCD(a div 2, b)else
else if (a mod 2 <> 0) and GCD := GCD(ba modshr 21, = 0b) then
else
GCD:= GCD(a, b div 2)
if (b and 1) = 0 then
else
GCD := GCD(ba, abs(ab -shr b)1);
else
GCD := GCD(ab, bAbs(a div- 2b))
end;
</source>
74

правки

Навигация