Como encontrar o menor múltiplo de um número que ultrapasse um limite
Às vezes você precisa simplesmente saber qual é o menor múltiplo de 15 maior que 50. A resposta direta é 60, mas o problema real surge quando você está lidando com isso em produção, e não num exercício de caderno.
Qual é o menor múltiplo de 15 maior que 50
O cálculo é rápido: 15 × 4 = 60. O próximo múltiplo após 50 é 60. Multiplos de 15 são: 15, 30, 45, 60, 75, 90, e assim por diante. 45 é menor que 50, então não serve. 60 é o primeiro que passa do limite. Na prática, eu já vi gente tentar resolver isso rodando um laço de repetição que vai somando 15 até passar de 50. Funciona, mas é desnecessário e lento se o número for grande. O jeito certo usa uma operação básica: arredondamento para cima da divisão.
👉 Clique no botão abaixo para saber mais sobre o assunto!
A fórmula prática é: múltiplo = ceil(n / divisor) × divisor. No caso do Python, isso fica `ceil(50 / 15) * 15`, que dá `ceil(3.333) * 15 = 4 * 15 = 60`. Em JavaScript, você pode usar `Math.ceil(50 / 15) * 15`. A lógica é a mesma em qualquer linguagem. Um erro que eu vejo todo dia: as pessoas usam `round` em vez de `ceil`. Se você arredonda 50/15 para o inteiro mais próximo, dá 3, e 3 × 15 = 45, que é menor que 50. O resultado fica errado e o programa continua rodando como se estivesse certo porque nenhum erro foi lançado. Isso acontece especialmente em sistemas de escalonamento, onde você precisa garantir que um recurso tenha pelo menos X unidades. O sistema aloca 45 em vez de 60, e meia hora depois você está debugando porque algo não encaixou.
Também tem a questão dos números exatos no limite. Se seu número-base for exatamente 45, que já é múltiplo de 15, e você usar `ceil(45 / 15) * 15`, o resultado é 45 — que é igual, não maior. Dependendo do que você precisa, isso pode ser um bug ou o comportamento esperado. Eu tive um caso em que um job de processamento em lote tinha tamanho fixo de 15 registros, e o último lote vinha com exatamente 45 registros. O código arredondava para cima e criava um lote vazio extra, desperdiçando recursos. A correção foi verificar se o número já é divisível antes de aplicar o `ceil`. Se o seu cenário exige estritamente "maior que" e não "maior ou igual a", aí a conta muda: `ceil((limite + 1) / divisor) * divisor`. Para 50, isso seria `ceil(51 / 15) * 15 = ceil(3.4) * 15 = 4 * 15 = 60`. No caso de 45, daria `ceil(46 / 15) * 15 = 4 * 15 = 60`, que é efetivamente maior que 45.
Outro ponto que vale considerar: se você estiver trabalhando com números grandes demais para a precisão de ponto flutuante da sua linguagem, o `ceil` pode retornar o valor errado por questões de arredondamento interno. Em Python, por exemplo, `math.ceil` lida bem com inteiros grandes. Em linguagens mais primitivas, a solução segura é usar divisão inteira: `(limite // divisor + 1) * divisor` se quiser estritamente maior, ou `(limite + divisor - 1) // divisor * divisor` se quiser maior ou igual. Isso evita float completamente. Resumindo sem resumo: o menor múltiplo de 15 maior que 50 é 60. Use a função de teto correta, verifique se o limite é múltiplo exato do divisor, e prefira aritmética inteira quando possível. O resto é ajuste fino dependendo do que você está construindo.