Número primo

Publicado por Kelyane (última atualização em 01/10/2009)

[ Hits: 3.999 ]

Homepage: http://blog.kelyane.com

Download NumeroPrimo.pas




Programa que verifica se o número é primo ou não.




Esconder código-fonte

Program NumPrimo ;

 Var    N, i: integer;
          isPrimo: boolean;
          respostaUsuario: char;   

 Begin    
    repeat 
       write('Informe um número: ');
      readln(N);
       
           i:=2;
      isPrimo:= true ;
         while (i<N) and (isPrimo) do  begin
         if (N mod i = 0) then begin     
            isPrimo:= false ;
                   end ;    
                        i:= i+1 ;
           end;
           if (isPrimo) then   Begin
         writeln(N, ' é um número primo');
           End 
           else Begin
              writeln(N, ' não é um número primo, porque é divisível por ', i-1);
           End;

      write('Deseja continuar ? (S/N)');      
           readln(respostaUsuario);
   until (respostaUsuario='N') or (respostaUsuario='n') ;
 End.

Scripts recomendados

dizer se o aluno passou ou nao

exemplo de vetores

Script que verifica se um número é primo ou não

controle de notas de uma clase com vetor e registro

calculo de porcentagem em vetores

Comentários
[1] Comentário enviado por fscaetano em 01/10/2009 - 12:25h

Pode-se dar uma boa otimizada:
- testar somente i ímpares após o 2;
- testar somente i se i*i < N, ou i <= sqrt(N), calculando a raiz somente uma vez e colocando o valor em outra variável;
- incrementar i somente no else do if(N mod i = 0), assim não precisaria do offset -1 no writeln;
Abraço!


Contribuir com comentário