программа выдаёт число простое или нет но тут в чём та загвостка не работает как надо
program Project2;
var
A,f,k:integer;
w:boolean;
function IsSmp (A: Integer): Boolean;
begin
if A<=1 then
IsSmp:=false;
for k:=2 to trunc(sqrt(A)) do begin
if (A mod k)=0 then IsSmp:=false else isSmp:=true;
exit;
end;
end;
begin
writeln ('vvedite 4isli');
readln(f);
if IsSmp(f)=true then writeln('4islo prostoe')
else writeln('4islo ne prostoe')
end.
памагите исправте если я чёта на партачел в программе
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
Если чсило такое, что trunc(sqrt(A)) < 2, то ты ни разу не попадаешь в цикл, и результату функции у тебя не присваивается никкое значение. А если A <=1 то после присвоения false можно сразу сделвть выход из функции:wewe писал(а):программа выдаёт число простое или нет но тут в чём та загвостка не работает как надо
Код: Выделить всё
begin
if A<=1 then
begin
IsSmp:=false;
exit;
end
else
IsSmp:=true;
{ Далее - почти по тексту. }
for k:=2 to trunc(sqrt(A)) do begin
if (A mod k)=0 then
begin
IsSmp:=false;
exit;
end;
end;
end;