Program Pzim ;
var
a, b, pote:integer;
function pot(x,y:integer):integer;
var
i,z:integer;
begin
z:=1; {inicio a var z, com valor 1, pois se colocar 0, qq numero multiplicado por zero dá zero}
for i:=1 to y do {faz de um até y, que recebe o valor de b no program principal}
begin
z:=z*x;
end;
pot:=z; {pot, que é a função, recebe o valor de z}
end;
procedure primo(j:integer);
var {para ser primo o numero so pode ser divisivel por 1 e por ele mesmo: cont<=2}
cont, i:integer;
begin
cont:=0; // inicia o contador com zero
for i:=1 to j do {fazer de 1 até o numero resultade da função potencia}
begin
if (j mod i <> 0 ) then {se a divisão do numero por 1,..,j, for diferente de zero
o contadot é incrementado, +1}
begin
cont:=cont+1;
end;
end;
if (cont<=2) then {como numero primo, só pode ser dividido no maximo
por dois, pelo numero 1 e por ele mesmo, se for maior que 1
, então para ser primo a condição é que o cont seja no maximo 2}
writeln('O número ',j,' é primo') {se for}
else
writeln('O número ',j,' não é primo'); {se não for}
end;
Begin {a estrutura do programa de entrada de dados é simples}
writeln('Digite o 1o. número : ');
readln(a);
writeln('Digite o 2o. número : ');
readln(b);
pote:=pot(a,b); {chama a função pote e atribui a variavel pote}
writeln('O numero ',a,' elevado a ',b,' é igual a : ',pote); {mostra o resultado}
primo(pote); {chama o procedimento primo, o resutado é mostrado dentro do procedimento}
End.