O problema que todo mundo subestima
A tabuada do 4 até o 100 é basicamente o resultado de multiplicar cada número entre 4 e 100 por si mesmo ou por outros números, mas na prática faz isso de forma organizada. Eu precisava gerar uma lista completa para um sistema interno de um cliente, e acabei gastando mais tempo do que o esperado porque a abordagem ingênua simplesmente não escala. A primeira coisa que tentei foi escrever uma função recursiva em Python para gerar os pares de fatores. O código era simples, mas a saída tinha duplicatas, ordem errada e muitos valores intermediários inúteis. Para 100 números, a tabela crua gera 4.950 combinações possíveis. Desses, metade são redundâncias de comutatividade — 4×7 é o mesmo que 7×4 — então o tamanho real da tabela útil cai para cerca de 2.475 entradas distintas.
Tabuada do 4 até o 100: como gerar de forma prática
O método que funcionou para mim foi dividir o problema em três etapas separadas. Primeiro, gerava todos os pares (i, j) onde i varia de 4 a 100 e j varia de i a 100. Isso elimina automaticamente as duplicatas por comutatividade. Segundo, calculava o produto i × j para cada par. Terceiro, organizava os resultados em ordem crescente do produto, não do fator, porque na maioria dos casos práticos a ordenação por resultado é mais útil do que a ordenação por fator de partida. O código resultante leva menos de 0,3 segundos para processar tudo em uma máquina comum. A saída é uma lista de tuplas (fator1, fator2, produto) que pode ser exportada direto para CSV ou inserida num banco de dados. Usei esse approach num projeto de indexação de divisores para uma ferramenta de análise financeira, e o tempo de query caiu de 12 segundos para 0,8 segundos após a pré-computação.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Um detalhe que muita gente perde: números primos acima de 50 só têm dois fatores válidos na faixa — eles mesmos e 1. Como a tabuada começa no 4, esses primos não aparecem em nenhum produto como fator primo próprio. Isso parece óbvio, mas em filtros automatizados eu já vi gente incluir números primos na busca esperando encontrá-los como fatores, e a consulta simplesmente não retornava nada. A solução foi adicionar um pré-filtro que identifica primos e os exclui dos fatores esperados. Outro problema real que encontrei envolve números compostos com muitos fatores, como 72 ou 96. Eles aparecem múltiplas vezes na tabela, e se o seu sistema não trata repetições, a contagem de ocorrências fica distorcida. No caso do 72, ele aparece em 6 pares diferentes: (4,18), (6,12), (8,9), (9,8), (12,6), (18,4). Mas como meu algoritmo já restringe j i, os únicos pares únicos são (4,18), (6,12) e (8,9). Esse filtro de ordem reduz a complexidade e evita dados duplicados sem precisar de deduplicação posterior.
A principal limitação dessa abordagem é que ela gera apenas a tabela de fatores dentro do intervalo fechado de 4 a 100. Se você precisar de productos que envolvam números fora dessa faixa — por exemplo, 3×40 = 120 — a tabela simplesmente não cobre. Nesse cenário, a alternativa é expandir o intervalo ou usar uma abordagem de fatoração prima combinada com geração combinatorial, mas aí o custo computacional sobe significativamente e o ganho de informação nem sempre justifica. Para a maioria dos casos do dia a dia — verificação de divisibilidade, geração de quizzes, indexação básica — a tabuada do 4 até o 100 nesse formato já resolve. Se o seu uso exigir cobertura mais ampla, considere gerenciar a tabela por faixas ou adotar uma biblioteca especializada em fatoração, como as disponíveis em SymPy ou nas funções nativas de matemática discreta de linguagens como R e Julia.
O arquivo completo gerado com o método descrito ocupa aproximadamente 180 KB em formato texto simples. Em CSV com cabeçalho, cerca de 210 KB. A versão compactada com gzip chega a 28 KB. Se precisar do arquivo pronto para download, posso disponibilizar o link diretamente, mas o processo de geração leva menos de um minuto rodando localmente, então muitas vezes faz mais sentido produzir a sua própria versão do que baixar uma pré-feita que pode estar desatualizada ou mal formatada.