Oi pessoal, estou com uma dúvida, é simples, mas nao estou conseguindo fazer o código para mostrar a qntd de números pares, estou fazendo e ele está somando os valores, não contando, alguém poderia me ajudar ?
O enunciado do problema é:
função abaixo para contar quantos números primos
existee até o número informado.
Por definição o que é um número primo?
R: Um número que é divisível apenas por 1 e ele mesmo.
Na internet já tem vários exemplos desse algoritmo, aqui mesmo, já teve tópicos sobre isso. Mas vou deixar um exemplo aqui:
public class Main {
public static void main(String[] args) {
int n = 10;
System.out.println("Todos os primos entre 2 a 10:");
for(int i = 2; i <= n; i++) {
if(ehPrimo(i) == true) {
System.out.println(i);
}
}
}
public static boolean ehPrimo(int num) {
// Um caso particular. 1 não é primo.
if(num == 1)
return false;
// Verifico se num é divisível por 2, 3, 4, ... num - 1.
for(int i = 2; i < num; i++) {
//Se existir um divisor. Não é primo.
if(num % i == 0) {
return false;
}
}
// Se chegar aqui, porque não existe divisores
// além de 1 e ele mesmo. então não é primo.
return true;
}
}
Vi o seu codigo agora. Pelo o que você mostrou bastava fazer isso nesse trecho:
if (counter == 2) {
contador += 1; // aqui você incrementa o contador
}
No exemplo que mostrei, fiz uma adaptação. Acho que agora está mais de acordo com o que você está buscando.
public class Main {
public static void main(String[] args) {
int totalPrimos = contarPrimos(10); // contar os primos de 1 a 10
System.out.println("Total de números primos entre 1 a 10:");
System.out.println(totalPrimos);
}
private static int contarPrimos(int limite) {
int count = 0;
for(int i = 1; i <= limite; i++) {
if(ehPrimo(i) == true) {
count += 1;
}
}
return count;
}
private static boolean ehPrimo(int num) {
// Um caso particular. 1 não é primo.
if(num == 1)
return false;
// Verifico se num é divisível por 2, 3, 4, ... num - 1.
for(int i = 2; i < num; i++) {
//Se existir um divisor. Não é primo.
if(num % i == 0) {
return false;
}
}
// Se chegar aqui, porque não existe divisores
// além de 1 e ele mesmo. então não é primo.
return true;
}
}