1. А вот до простого и не дочитал
2. Первый раз слышу, что "var" не употребляется в функциях. Но я слышал, что если функция кроме прямого результата делает ещё что-то, то это очень даже хорошо.
Дописал:
Код:
function Prostoe(aa:integer):boolean;
var pr:boolean;
d:integer;
begin
if aa<1
then pr:=false
else
begin
pr:=true;
for d:=2 to (aa div 2) do
if (aa mod d=0) then
begin
pr:=false;
Break;
end;
end;
Prostoe:=pr;
end;
function Proverka(an:integer; var at:integer):boolean;
var e,k:Real;
a:integer;
begin
e:=0.00001;
k:=Exp((1/3)*Ln(an));
if Frac(k)<e
then
begin
a:=Trunc(k);
if Prostoe(a) then
begin
Proverka:=true ;
at:=a;
end
end
else Proverka:=false;
end;
var n,t:integer;
begin
Write('N = ');
Readln(n);
Writeln;
t:=0;
if Proverka(n,t)
then Writeln('DA rezultat = ',t,'*',t,'*',t)
else Writeln('NET');
Readln;
end.