quarta-feira, 8 de junho de 2011

Questão 3 da prova

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.