Números primos

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.

Contar números pares(10) = 4

Olá Juliana, a sua pergunta está um pouco confusa. Você quer verificar números pares ou primos? E você não mostrou o seu codigo.

desculpe, seria primos

int contador;

	for (int i = 1; i <= 10; i++) {
        int counter = 0;
        for (int k = 1; k <= i; k++) {
            if (i % k == 0) ++counter;
          
        
        }
        if (counter == 2) {
            
        }
        
        
    }

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;
	}
}

eu vi vários exemplos também, mas não consigo implantar um contador dentro da condição de numero primo, por exemplo

10 = 4 (existem 4 numeros primos dentro de dez)

1 curtida

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;
	}
}

A saída é 4.

Muito obrigadaA