Pascal програма “Знаходження НСД чисел”
16.03.2016НСД(a, b)= НСД(b, a) (перестановка аргументів не змінює НСД).
• 1<=НСД(a, b)<=min(|a|,|b|)
• НСД(a, b, c, d) = НСД(НСД(a, b), НСД(c, d) )
• НСД(a, b) =|ab|/НСК(a, b), де НСК(a, b) найменше спільне кратне чисел a, b.
Програма
function Nod(a,b:integer):integer;{знаходження НСД 2 чисел}
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
Nod:=a;
end;
var a:array[1..100] of integer;
n,i:byte;
k:integer;
begin
clrscr;
write(‘Введіть к-сть елементів n=’);
readln(n);
writeln(‘Введіть елементи масиву: ‘);
for i:=1 to n do
begin
write(‘a[‘,i,’]=’);
readln(a[i]);
end;
writeln(‘Масив:’);
for i:=1 to n do
write(a[i],’ ‘);
writeln;
k:=Nod(a[1],a[2]);
for i:=3 to n do k:=nod(k,a[i]);
writeln(‘НСД елементів=’,k);
readln
end.