Pessoal, estou tentando fazer um programinha banal aqui, mas estou tendo dificuldades em implementá-lo.
O problema é verificar se um número p é primo ou não (como não consigo fazer isso ? :shock:).
Informo um número p via Scanner e faço um loop for para receber o resto da divisão de p por i (o contador do loop) que varia de 2 até p (tá, eu sei, pode ser a té a metade de p).
Mas para qualquer número p que informo o programa dá uma mensagem dizendo que o número é primo, por exemplo, ele informa que o 9 é primo.
Acredito que o problema esteja em saber usar o operador resto (%). Alguém pode dar uma luz, por favor ?
O código está logo abaixo:
package Lista_01;
import java.util.Scanner; // Programa utiliza a classe Scanner
public class Primo
{
public static void main(String[] args)
{
// Cria Scanner para obter entrada a partir da janela de comando
Scanner input = new Scanner (System.in);
// Declaração de variáveis
int p;
float num;
int i;
boolean result;
// Inicialização da variável boleana result
result = true;
// Pede para que seja informado o número p a ser verificado se é primo
System.out.println("Informe o número p a ser virificado");
// Utiliza a classe Scanner para a entrada do número p
p = input.nextInt();
// Varre a variável i de p até 2 para verificar se a divisão
// de p pelo número i resulta em um resto inteiro.
// Se o número n dividido por i tiver resto igual a zero,
// atribui false à variável result e para a execução do loop.
for(i=2;i<=p;i++)
{
num = p%i;
if (num == 0)
{
result = false;
break;
}
}
// Se a result for true, o número n será primo. Com isso imprime
// mensagem de que o número n é primo. Caso contrário imprime
// mensagem dizendo que não é primo.
if (result = true)
{
System.out.println("O número "+ p +" é primo");
}
else
{
System.out.println("O número "+ p + " Não é primo");
}
}
}
Desde já agradeço a ajuda.
