Ir para conteúdo
Fórum Script Brasil
  • 0

Quantos números primos


Guilherme Alves Romero

Pergunta

Olá,

Eu estou escrevendo um programa pra calcular a quantidade de números primos em uma sequência. Tem uma variável chamada num que é dada e então o programa deve calcular quantos números primos tem de 2 (o menor número primo) até num.

Deveria ficar algo assim:

____________________________________________________________________________________________

Introduza um número maior que 1:7

Há 4 números primos entre 2 e 7.

____________________________________________________________________________________________

 

Isto porque 2, 3, 5 e 7 são números primos. No total, 4 números.

O código abaixo mostra a variável num, que é igual a 7, a funão main chama a função ePrimo(que calcula se um número é primo ou não). Então a maneira qeu eu pensei seria usar um loop for de 2 até num e checar se cada i é primo ou não.

Não sei como proceder a partir daí. Alguém poderia ajudar, por favor?

#include <stdio.h>
#include <math.h>

int ePrimo(int num) {
    int i;
    for (i=2; i<=sqrt(num); i++) {
        if (num%i == 0) {
            return 0;
        }
    }
    return 1;
}

int main(){
    
    int i, num, numdeprimos;
    
    num=7;
    
    for (i=2;i<=num;i++){
        if (ePrimo(i)){
        
        }
        
        printf("%d", numdeprimos);
    }
    
    return 0;
}

return 0;
}

 

Editado por Guilherme Alves Romero
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Responda às perguntas: ENTRADA? PROCESSO? SAÍDA?

Identifique cada etapa da programação, use o que tem e responda.

Por exemplo. Qual a entrada? Um número maior que 1.

#include <stdio.h>
unsigned
entrada(void) {
    printf("%s", "Entre com numero maior que 1: ");
    unsigned num= 0; scanf(" %i", &num);
    return num;
}
int
main(void){
    unsigned numero= entrada();
    printf("%s %d\n", "você digitou", numero);
    return 0;
}

Agora com a entrada, você programa outra função que percorra todos os valores de 2 até a entrada [ou numero] e uma última que é o teste de primalidade: processo e saída

#include <stdio.h>
unsigned
eprimo(unsigned i) {
    //Escreva o teste aqui
    return 1;
}
void
processo_saida(unsigned entrada) {
    for (unsigned i= 2;    i <= entrada;    ++i)
        if (eprimo(i))
            printf(" %d", i);
}
unsigned
entrada(void) {
    printf("%s", "Entre com numero maior que 1: ");
    unsigned num= 0; scanf(" %i", &num);
    return num;
}
int
main(void){
    unsigned numero= entrada(); processo_saida(numero);
    return 0;
}

 Programa 65% pronto

🙂 

Editado por britivaldo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...