Número primo

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

[ Hits: 5.496 ]

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

Cronômetro feito no Lazarus(Delphi 7 para Linux)

calculo da somatoria da diagonal principal

Tratar campos not null

Criptografador(Conceito criptografia)Lazarus

Gerador de senha Pascal/Lazarus


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts