• 🔴 [ENEM 2025 PPL Live 03] Matemática - Resolução de 146 até 150
  • 🔴 [ENEM 2025 PPL Live 02] Matemática - Resolução de 141 até 145
  • 🔴 [ENEM 2025 PPL Live 01] Matemática - Resolução de 136 até 140
  • 🔴 [ENEM 2025 Belém Live 09] Matemática - Resolução de 176 até 180
  • 🔴 [ENEM 2025 Belém Live 08] Matemática - Resolução de 171 até 175
  • 🔴 [ENEM 2025 Belém Live 07] Matemática - Resolução de 166 até 170

ALGORITMOS E IMPLEMENTAÇÕESDuvida na lógica desse exercicio

Implementação de equações dentro da computação, programação e algoritmos.
Avatar do usuário
mazoni Offline
iniciante
Mensagens: 7
Registrado em: 19 Jun 2010, 13:24
Nov 2010 03 10:43

Duvida na lógica desse exercicio

Mensagem por mazoni »

Bom dia pessoal. Estou na dúvida desse exercicio

Atividade: Crie um programa que determine os 3 primeiros números perfeitos,
armazenando-os em um array. Mostre o conteúdo do array. Um número n > 0 é perfeito
quando a soma dos seus divisores (exceto ele mesmo) é exatamente igual a n.
Exemplo: 6 -> 1+2+3 = 6

Alguem poderia me explicar a lógica desse exercicio?
Avatar do usuário
rafaelplaurindo Offline
Avançado
Mensagens: 146
Registrado em: 28 Ago 2010, 18:42
Localização: Campos dos Goytacazes - RJ
Agradeceu: 28 vezes
Agradeceram: 1 vez
Dez 2010 08 18:04

Re: Duvida na lógica desse exercicio

Mensagem por rafaelplaurindo »

Amigão, é o seguinte, diz-se que um valor é múltiplo de outrem quando o resto da divisão do maior pelo menor é igual a 0, correto?


Eu programo em PHP, portanto, tente entender o algoritmo sem questionar a "linguagem", sendo a mesma pseudônima. Ok?

Código: Selecionar todos

n = 1
m = n-1 //valor que será testado se é múltiplo de n. O n-1, é porque na restrição do problema, consta que ele mesmo não pode entrar.
sum = 0 //guarda o somatório para testar se igual a n, como no exemplo que citou.
p = 0 //guarda quantos valores perfeitos forem achados, isto é, a quantidade
vet[2] = nulo //cria um array nulo, isto é, sem valor algum armazenado

enquanto (p < 4)
{
      enquanto (m > 0) {
            if (n % m == 0)
                  sum += m
            m -= 1
      }

      //verifica se o somatório de seus múltiplos é igual a ele mesmo. Caso sim, armazena-o no vetor
      if (n == sum) {
            p += 1
            vet[pos] = n;
            n += 1
      }
}

//mostra os valores encontrados
para (i=0 ate 2)
      imprimir (vet[i])
Editado pela última vez por rafaelplaurindo em 08 Dez 2010, 18:04, em um total de 1 vez.
Responder
  • Tópicos Semelhantes
    Resp.
    Exibições
    Últ. msg

Voltar para “ALGORITMOS E IMPLEMENTAÇÕES”