Números Primos em Pascal

Esse é um pedido muito comum dos professores e todo o segredo está na lógica.

Código Fonte:

 Program Numeros_Primos_de_1_a_100;  
 Uses Crt;  
 var  
  i,j : Integer;  
  p : Boolean;  
 begin  
  ClrScr;  
  WriteLn ('Os numeros primos de 1 a 100 sao:');  
  for i := 1 to 100 do  
  begin  
   p := True;  
   for j := 2 to i-1 do  
   begin  
    if ( i mod j) = 0 then p := false;  
   end;  
   if p then Write (i,',');  
  end;  
  ReadLn;  
 end.  

Explicação

Partimos do princípio que o número primo só é divisível por 1 e por ele mesmo. Como todos os números são assim esse é um teste de não devemos fazer.

Criei duas variáveis I para ser o contador de 1 a 100 e o J para ser o divisor. Veja que dentro do FOR da variável J começa com 2 e vai até I-2 para que não utilizemos 1 e o próprio I, pois ambos seriam verdadeiros.

A variável P é a variável de teste do tipo BOOLEAN (TRUE ou FALSE). A princípio P é verdadeiro (TRUE), mas caso uma divisão não tenha resto o número não é primo e P fica falso (FALSE).

Se P (for verdadeiro) mostre o valor de I e é isso que acontece na linha IF P THEN WRITE (i,',');

Tem dúvida? Envie para mim: telles.wellington@bol.com.br

Nenhum comentário:

Postar um comentário