Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Matheus Perusso

fatoração em c

Recommended Posts

Ola, estou tentando fazer o seguinte exercicio :

Faça um programa em linguagem C que receba dois números. O primeiro é um número

inteiro positivo que será fatorado. O segundo é outro inteiro positivo que diz quantos

números DIFERENTES que o usuário acha que serão precisos para fatorar o primeiro

número. O programa, ao final, diz se a suposição do usuário estava correta ou não (ele

não mostra a fatoração).Exemplo:

Entrada: 30 e 3.Saída: suposição correta. (Fatoração de 30 = 2*3*5)

Entrada: 18 e 2.Saída: suposição correta. (Fatoração de 18= 2*3*3)

 

Como eu faço para descobrir que é necessaria a multiplicação de 3 números para formar o número 3?

Compartilhar este post


Link para o post
Compartilhar em outros sites
30 minutos atrás, Matheus Perusso disse:

Como eu faço para descobrir que é necessaria a multiplicação de 3 números para formar o número 3?

  • Divisão sucessiva por números primos; Sempre que o número for divisível inteiro pelo primo o contador é incrementado e o novo valor de número é o razão de número primo atual. Quando não divisível o primo assume o valor do próximo primo na sequência até um divisível ser encontrado.

Para facilitar o código, podemos assumir a variável primo que seja um vetor dos primos mais usuais: {2, 3, 5, 7, 11, 13, 17}.

 

Editado por Mauro Britivaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Eu armazenei os valores no vetor, só tenho um problema, no caso do 18, no qual o 3 se repete, só aparece o 3 uma vez, segue a estrutura que eu utilizei(só a parte da verificação):

    for(pv=0;pv<=6;pv++){
         if(num%vet[pv]==0){
         printf("%d", vet[pv]);
         printf("\n");
       }

     

    Já consegui, botei outro for por fora, coloquei ele pra rodar duas vezes e coloquei dentro do if, para o numero ser igual a divisão dele mesmo pelo número primo no vetor.

    Editado por Matheus Perusso

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    O contador a que me refiro é o contador de fatores, por exemplo: 

    E.I.:  fatoração(18): 2*3*3. Logo possui 18 3 fatores primos.

    Nas circunstâncias do exemplo a variável contador é : 3.

     

    Observe que no primeiro instante o número 2 é divisor inteiro, depois não é mais

    porque

    iniciou:

    numero = 18 / 2: 9

    numero = 9 / 2: 4.5, neste instante incrementa o vet[pv++]

    numero = 9 / 3: 3

    numero=  3 / 3: 1,    neste instante finaliza o loop.

    finalizou.

    Spoiler
    
    int fatores(int num)
    {
        int fat[6] = {2, 3, 5, 7, 11, 17};
        int f = 0, cont = 0;
    
        while(num != 1)
        {
            if((num%fat[f]) == 0)
            {
                num /= fat[f];
                cont++;
            }else
                f++;
        }
        return cont;
    }

     

    _____________________________

    Editado por Mauro Britivaldo
    • Curtir 1

    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






    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

    ×