Encontrando os múltiplos comuns de 5 e 4 na prática
Múltiplos comuns de 5 e 4 são apenas os números que aparecem simultaneamente nas duas sequências. A maneira mais direta é listar os múltiplos de cada um até encontrar sobreposições, mas isso rapidamente se torna inviável quando os números crescem. Eu uso o MMC (mínimo múltiplo comum) como ponto de partida e depois gero todos os demais multiplicando-o por inteiros consecutivos. O MMC de 5 e 4 é 20, então todos os múltiplos comuns são 20, 40, 60, 80, 100, 120 e assim por diante. Dito isso, o tópico
todos os múltiplos comuns de 5 e 4
aparece com frequência em listas de exercícios e também em cenários reais de programação, e vale a pena saber exatamente como operar com ele sem perder tempo. Na maioria das vezes, quem pergunta quer uma lista pronta, mas o problema real é saber gerar essa lista sob demanda. Um exemplo concreto: num projeto meu de marcação de intervalos em telas, precisei sincronizar dois ciclos — um de 4 segundos e outro de 5 segundos — e garantir que um evento só disparasse nos instantes em que ambos coincidissem. Se eu tivesse ficado listando múltiplos na mão, nunca terminava. Usei uma função que calcula o MMC via algoritmo de Euclides para o MDC e depois multiplica por n. O resultado é exato e roda em tempo constante, independentemente do tamanho do número.Como calcular de forma confiável
O caminho mais limpo combina dois passos. Primeiro, achar o MDC entre 5 e 4. Como 5 é primo e 4 = 2², não há fator em comum, então o MDC é 1. Segundo, aplicar a relação MMC(a,b) = (a × b) / MDC(a,b). Para 5 e 4, isso dá (5 × 4) / 1 = 20. A partir daí, os múltiplos comuns são todos os múltiplos de 20. Eu prefiro escrever uma pequena função em vez de confiar em listas manuais, porque a conta errada acontece justamente quando o sinal ou a ordem dos operandos é trocado. Um erro comum é confundir múltiplos comuns com divisores comuns. Divisores comuns de 5 e 4 formam um conjunto totalmente diferente — basicamente {1}, já que o MDC é 1. São conceitos opostos em estrutura, embora pareçam vizinhos no enunciado de uma questão.
Lista completa dos primeiros múltiplos comuns de 5 e 4
20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400. A regra é simples: cada termo vale 20 vezes um inteiro positivo. Se precisar de mais termos, basta continuar a sequência aritmética de razão 20. Não existe limite superior natural; a lista é infinita.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Um detalhe que costuma pegar gente experiente
EmCertain contextos de implementação, as pessoas partem direto para a lista sem considerar comportamento de borda quando um dos operandos é zero ou negativo. Múltiplos comuns só fazem sentido dentro do contexto habitual de inteiros positivos, mas em código eu já vi funções retornarem 0 como MMC porque a divisão por MDC foi executada antes da validação dos sinais. A correção que eu adoto é trivial: garantir que ambos os valores de entrada sejam positivos antes de qualquer cálculo, e tratar o caso zero explicitamente, já que tecnicamente todo inteiro divide 0, o que tornaria o conceito de múltiplo comum instável se 0 entrasse na conta. Outro ponto pouco mencionado é a diferença entre gerar uma lista finita e representar o conjunto de forma fechada. Em matemática, escrever {20n | n ℕ*} é mais preciso do que entregar dez termos e deixar a pessoa achando que é tudo. Em programação, isso se reflete na escolha entre construir um array e retornar um gerador ou uma função que produz o n-ésimo termo sob demanda. Se o consumo for pontual, o array é aceitável. Se for dentro de um laço grande, o gerador evita alocação desnecessária e reduz a memória usada de O(n) para O(1).
Implementação prática em Python
Eu coloco aqui uma versão direta, porque é a que eu uso em quase tudo. Ela separa claramente o cálculo do MMC da geração da lista, o que facilita testes unitários depois.
import math
def mmc(a, b):
a, b = abs(a), abs(b)
if a == 0 or b == 0:
raise ValueError("MMC não é definido de forma útil quando um operando é zero")
return a * b // math.gcd(a, b)
def multiplos_comuns(a, b, n):
m = mmc(a, b)
return [m * k for k in range(1, n + 1)]
print(multiplos_comuns(5, 4, 10))
[20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
Se o objetivo for apenas consultar termos isolados, uma função que retorna o n-ésimo múltiplo comum é suficiente e evita gastar memória gerando a lista toda. A razão do custo aqui não é o MMC em si — ele roda em tempo logarítmico — e sim a escolha de materializar todos os valores quando só alguns vão ser usados.
Quando esse conteúdo é realmente útil
Além dos exercícios escolares, múltiplos comuns aparecem em escalonamento de tarefas, resolução de problemas de cronograma, cálculo de períodos em sinais periódicos e até em criptografia, onde a periodicidade de operações modulares depende diretamente do MMC. O erro mais frequente nesses cenários não é matemático, mas de interpretação: tratar um conjunto infinito como se fosse finito e parar a contagem na primeira lista que apareceu num caderno. Se o problema pede todos os múltiplos comuns menores que um certo limite, o limite deve ser aplicado explicitamente. Se pede os primeiros n, o n deve ser informado. Sem essas duas informações, qualquer resposta é incompleta. Para quem quer testar rápido, não precisa de biblioteca externa. O código acima roda em qualquer ambiente Python 3.8+. Se quiser um executável ou um pequeno script empacotado, posso montar um arquivo .py simples ou um pequeno utilitário em linha de comando, mas o núcleo da solução já está apresentado. O importante é não confundir MMC com MDC e não sair multiplicando listas na mão quando uma função de linha resolve em milissegundos.