Предмет: Информатика,
автор: SchokkovaЯ
Составьте программу, отыскивающую наименьший общий составной делитель натуральных чисел N и М. (обязательно использование подпрограмм)
Ответы
Автор ответа:
0
Program pr1;
Var m, n, i, j:integer;
Function isitsimple (x:integer) :boolean;
Var i:integer;
Begin
isitsimple:=false;
For i:=2 to x-1 do
if x mod i=0 then isitsimple:=true;
End;
Begin
Writeln('input m') ;
Readln(m) ;
Writeln('input n') ;
Readln(n) ;
If m>n then j:=m;
For i:=1 to j do
if (m mod i=0) and(n mod i=0) then
If isitsimple(i) then
Begin
writeln('NOD: ', i) ;
Break;
End;
End.
Var m, n, i, j:integer;
Function isitsimple (x:integer) :boolean;
Var i:integer;
Begin
isitsimple:=false;
For i:=2 to x-1 do
if x mod i=0 then isitsimple:=true;
End;
Begin
Writeln('input m') ;
Readln(m) ;
Writeln('input n') ;
Readln(n) ;
If m>n then j:=m;
For i:=1 to j do
if (m mod i=0) and(n mod i=0) then
If isitsimple(i) then
Begin
writeln('NOD: ', i) ;
Break;
End;
End.
Автор ответа:
0
Var n, m, k, i: integer; f:boolean;
Function s(a:integer):boolean;
Var i:integer;
Begin
s:=false;
For i:=2 to a div 2 do
if a mod i=0 then s:=true;
End;
Begin
Write('n = ');
Readln(n);
Write('m = ');
Readln(m);
If m<n then k:=m else k:=n;
i:=1; f:=s(i);
while (i<k) and not f do
begin
i:=i+1;
if (m mod i=0)and(n mod i=0) then f:=s(i);
end;
if f then writeln('НОД = ', i) else writeln('Нет требуемого делителя');
End.
Пример:
n = 42
m = 105
НОД = 21
Function s(a:integer):boolean;
Var i:integer;
Begin
s:=false;
For i:=2 to a div 2 do
if a mod i=0 then s:=true;
End;
Begin
Write('n = ');
Readln(n);
Write('m = ');
Readln(m);
If m<n then k:=m else k:=n;
i:=1; f:=s(i);
while (i<k) and not f do
begin
i:=i+1;
if (m mod i=0)and(n mod i=0) then f:=s(i);
end;
if f then writeln('НОД = ', i) else writeln('Нет требуемого делителя');
End.
Пример:
n = 42
m = 105
НОД = 21
Похожие вопросы
Предмет: Русский язык,
автор: trsyngaliakbota
Предмет: Русский язык,
автор: tsypylovatanya
Предмет: Биология,
автор: angelinazarcinskaa3
Предмет: Алгебра,
автор: sashasiluk