Программа для нахождения НОК в Паскале. Объясните, пожалуйста строчки, помечанные цифрами. Заранее спасибо. var n,m:integer;
i,k:integer;
delitsya:boolean; 1.
begin
write('Vvedite N: ');
readln(n);
write('Vvedite M: ');
readln(m);
if (m<>0) and (n<>0) then
begin
k:=n*m; 2
i:=k; 3
while i>0 do 4
begin
if (i mod n=0) and (i mod m=0) then 5
k:=i; 6
i:=i-1; 7
end;
writeln('NOK ',m,' i ',n,' raven ',k)
end
else writeln('Na nol delit nelzya');
readln;
end.
Answers & Comments
k:=n*m; - присваиваем переменной k значение произведения n*m
i:=k; - присваиваем переменной i значение переменной k
while i>0 do - цикл, который будет выполняться пока значение i>0
if (i mod n=0) and (i mod m=0) then - если остатки отделения i mod n и i mod m равны нулю, то выполняется 2 строчки ниже с присвоением k значения i и уменьшением i на 1
Ощущение, что программа написана криво, она вообще работает?
var i,k,n,m:integer;
label syda;
begin
syda:
write('Vvedite N: ');
readln(n);
write('Vvedite M: ');
readln(m);
if (m=0) and (m=0) then goto syda else
if (m<>0) and (n<>0) then
begin
k:=n*m;
i:=k;
end;
while i>0 do
begin
i:=i-1;
end;
writeln('NOK ',m,' i ',n,' raven ',k)
end.