Como gerar numeros primos

Alguem sabe como gerar numeros primos? tentei isso (estou no 1º semestre ainda), e n rodou, aparece esse erro na saída:

Exception in thread “main” java.lang.ArithmeticException: / by zero
at primo.NumeroPrimo.main(NumeroPrimo.java:23)
C:\Users\Marcelo Alves\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 3 segundos)

//Código
public static void main(String[] args) {
int n=Integer.parseInt(JOptionPane.showInputDialog(“Qual o número?”));
int contador = 0;
for (int i =0 ; i<= n; i++){
if (n%i==0){
contador++;
}
}
if (contador>2){
System.out.println(“O número não é primo!”);
}else if (contador<=2){
System.out.println(“O número é primo!”);
}

}
}

Seu for não pode iniciar com zero, inicie ele com 1 , pois se vc iniciar com zero ele vai fazer a primeira divisão por zero e ai da erro

1 curtida

Seu for está errado, não pode iniciar com ZERO, tente:

public static void main (String args[]){  
     //Um número é primo se ele for divisível por 1 e ele mesmo(SOMENTE)
     //Então na validação teremos apenas 2 divisores
        int numero;
        int numDivisores=0;
        numero = Teclado.lerInteiro("Digite um número");
    
            for(int i = 1; i <= numero; i++){
            if(numero % i ==0){
            numDivisores++;
            }
            }            
                if(numDivisores == 2){
                System.out.println("O Número é Primo");
                }else{
                System.out.println("O Número não é Primo");
               }

        
    }
1 curtida