Número primo
Programa que verifica se o número é primo ou não.
Descrição
Programa que verifica se o número é primo ou não.
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.
- 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!