Galera estou em uma duvida, meu código não está funcionando da forma que eu queria, pois o laço um não é incrementado, e o laço só é executado uma vez:
public class NumeroPrimo {
public static void main(String[] args) {
int i,j,count = 0, resul;
for(i = 2; i<=100; i++){
for(j=1; j<=i; j++){
if(i%j == 0){
count++;
}
}
if(count == 2){
resul = i;
System.out.println(resul + " é primo\n");
}
}
}
}
Saída do código : 2 é primo
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {
System.out.println("O número " + i + " é primo? " + (isPrimo(i) ? "Sim" : "Não"));
}
}
private static boolean isPrimo(int numero) {
boolean ret = false;
if (numero == 2) {
ret = true;
} else if (numero % 2 != 0) { //Verifica se o número é ímpar
String s = Integer.toString(numero);
if(s.length() > 1 && s.lastIndexOf("5") != -1){
return false;
}
int cont = 0;
boolean maisDeUm = false;
//Um número primo é dividido por 1 e ele mesmo
for (int tmp = 1; tmp <= numero; tmp++) {
if (numero % tmp == 0) {
cont++;
if(cont == 2 && tmp < numero){
maisDeUm = true;
break;
}
}
}
if (cont == 2 && !maisDeUm) {
ret = true;
}
}
return ret;
}
Você tem que zerar a variável count
a cada iteração do laço mais externo.
Era isso mesmo, muito obrigado sério mesmo, fiquei um dia pensando nisso e não conseguia a resposta.