Ir ao conteúdo
  • Cadastre-se
luana1

C o número de factores primos, não necessariamente distintos, de cada um desses na

Posts recomendados

Boas pessoal, tenho uma dúvida e não sei mesmo como fazer.

Tenho que fazer um programa que leia, do seu standard input (teclado), uma sequência de naturais e que escreva, no seu standard output (consola), o número de factores primos, não necessariamente distintos, de cada um desses naturais.

 

Entrada (Input)

A primeira linha da entrada do programa contém um valor inteiro, N, que corresponde ao número de naturais da sequência. Cada uma das N linhas seguintes contém um natural, ni, que é o i-ésimo elemento da sequência.

 

Saída (Output)

A saída do programa consistirá em tantas linhas quantos os elementos da sequência. Cada uma das linhas terá a forma:

<natural>: <número-de-factores-primos>

onde, na i-ésima linha, <natural> é o i-ésimo natural da sequência e <número-de-factores-primos> é o número de factores primos desse natural.

 

Exemplo 1

 

Entrada

3

20

0

100000000

 

Saída

20: 3

0: 0

100000000: 16

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@luana1       esse exercício parece ser do uri online ,  se você tiver pegado desse site , qual o número desse exercício ? 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 é um exercicio da minha escola, não sei

 

adicionado 22 minutos depois

É trabalho de casa, mas não estou a perceber

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, luana1 disse:

@devair1010 é um exercicio da minha escola, não sei

 

adicionado 22 minutos depois

É trabalho de casa, mas não estou a perceber

 

tenho um pouco de código, só que só funciona para um

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

postei aqui --- no ano pasado --- nesse forum duas soluções para números primos que pode adaptar para esse exercicio, afinal basta contar os fatores. Uma usava o crivo de eratostenes e a outra era convencional. pode pesquisar aqui por esse tema

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Exatamente! Há anos vi algo muito parecido também já aqui, no URI e na escola.

 

Em 15/02/2020 às 16:04, luana1 disse:

tenho um pouco de código, só que só funciona para um

@luana1 Ótimo, assim não perde tempo discutido um método , só a adaptação do já adotado.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O programa que postei meses atrás tinha uma função

unsigned int    proximo_primo(unsigned int n);

E como dá pra imaginar ela retorna o próximo primo a cada chamada. É praticamente a solução para o seu problema, já que pode usar isso para ir fatorando seu número e contando o número de fatores primos e pronto...

 

Pode ler a discussão lá.

 

Para resumir aqui abaixo tem o mínimo do código. Funciona direitinho. É só matemática afinal.

 

Se não entendeu como isso se aplica ao seu problema, escreva de novo

 

int                retorna_um_se_primo(unsigned int n)
{
    if (n < 2)        return 0;
    if (n == 2)        return(1);
    if (n % 2 == 0) return(0);
    unsigned int maior = (unsigned int)sqrt((double)n);
    unsigned int fator = 3;
    while (fator <= maior)
    {
        if (n % fator == 0) return 0;
        fator += 2;
    }    // end while
    return 1;
}    // end retorna_zero_se_primo()


unsigned int    proximo_primo(unsigned int n)
{
    static int     iniciado = 0;
    static int     proximo = 0;

    if (n == 0)                        // inicia a serie
    {
        iniciado = 1;
        proximo = 2;
        return 1;
    }    // end if

    if(iniciado == 0) return 0;        // erro: tem que chamar com 0 antes

    if (proximo == 2)
    {
        proximo = 1;
        return 2;
    }    // end if

    // normal: a a partir daqui retorna o proximo primo
    for (int i = proximo+2;;i += 2)
        if (retorna_um_se_primo(i))
        {
            proximo = i;
            return proximo;
        }    // end if
}    // end proximo_primo()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outros tópicos discutindo algoritmos de números primos:

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Eletrônica

PROMOÇÃO DE QUARENTENA

Aproveite o isolamento social para aprender eletrônica!
De R$ 39,90 por apenas R$ 19,90
Só até as 23h59min desta sexta-feira 10/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!