Dúvida em C - Números primos

Olá, boa tarde! Estou com dúvida em um programa que estou fazendo. O programa deve receber uma sequência de números inteiros e, quando for digitado um número que seja múltiplo de 150 (seja positivo ou negativo), eu apresento um menu de opções para o usuário.:

1 - Quantidade de números inseridos
2 - Quantidade de números negativos
3 - Quantidade de números pares
4 - Quantidade de números primos
5 - Média dos números
6 - Sair

O meu problema maior está no tópico 4. Todos os outros tópicos funcionaram direitinho. O problema é que a lógica que estou fazendo está dando que só existe 1 número primo digitado (isso quando eu digito de 1 a 10 para teste). A lógica que eu fiz foi pegar o número, colocar dentro de um for e lá eu faço uma divisão por todos os números de 1 até o número que foi digitado. Se a quantidade de divisões com resto 0 for igual a 2 ele é primo e se contabiliza. Se não, nada é feito

    for (i = 1; i <= numero; i++){
                    if(numero%i==0){
                    divisoes = divisoes + 1;
                        if (divisoes==2){
                        primo = primo + 1;
                        }
                    }
                }
  1. divisoes deve ser testado se é igual a dois apenas depois da execução do for.
  2. se esse for está dentro de algum outro for, quer dizer que você está testando a primalidade de outros números, então precisa zerar o contador divisoes sempre antes de iniciar o for;
  3. se dentro do for divisoes por maior que 2, você pode parar o laço.

Segue abaixo uma implementação bem ingênua…

public static boolean ehPrimo( int numero ) {
    int divisoes = 0;
    for ( int i = 1; i <= numero; i++ ) {
        if ( numero % i == 0 ) {
            divisoes++;
            if ( divisoes > 2 ) {
                return false;
            }
        }
    }
    return divisoes == 2;
}

Muito Muito Obrigado ! O meu é em C, não em C++, mas eu já peguei a ideia. Eu não declarei dentro do for o divisoes.
Obrigado, mais uma vez