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

Problema para encontrar número que forma a maior sequência


Teil zm

Pergunta

Olá quer ajuda para resolver o problema a seguir, grato pela atenção. 

Uma sequência iterativa é definida por um conjunto de números inteiros positivos. A regra para geração dos números de uma sequência é :

n/2 quando n é par

3n+1 quando n é ímpar 

Iniciando n=13 a sequência gerada é :

13 - 40 - 20 - 10 - 5 - 16 - 8 - 4 - 2 - 1

Esta sequência inicia-se em 13, termina em 1 e contém 10 elementos. Embora ainda não tenha sido comprovado, acredita-se que ao iniciar a sequência com qualquer número inteiro positivo, ela sempre termina em 1.

Qual o número inicial, menor que 1 milhão,  que gera a maior sequência, ou seja com maior número de elementos. Implemente um programa em c para resolver.

Obs: use o long int

 

RESPOSTA: 837799

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

#include <stdio.h>
#include <stdlib.h>

int main()
{
    long long int maior, auxm, aux, i, cont, auxc;
    
    for (i=1000000; i>0; i--)
    {
        aux=i;
        
        cont = 1;
        
        while(aux!=1)
        {
            if (aux%2==0)
                aux = aux/2;
            else
                aux = 3*aux+1;
            cont ++;
        }
        
        if (i==1000000)
            auxc = cont;
            
        if(cont >= auxc)
        {
            auxc = cont;
            auxm = i;
        }    
    }
    
    printf("\n\nCONT: %lld NUM: %lld\n", auxc, auxm);

}

#include <stdio.h>
#include <stdlib.h>

int main()
{
    long long int maior, auxm, aux, i, cont, auxc;
    
    for (i=1000000; i>0; i--)
    {
        aux=i;
        
        cont = 0;
        
        while(aux!=1)
        {
            if (aux%2==0)
                aux = aux/2;
            else
                aux = 3*aux+1;
            cont ++;
        }
        
        if (i==1000000)
            auxc = cont;
            
        if(cont >= auxc)
        {
            auxc = cont;
            auxm = i;
        }
        
        printf("\n\nCONT: %lld NUM: %lld\n", cont, i);    
    }
    
    printf("\n\nCONT: %lld NUM: %lld\n", auxc, auxm);

}

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...