O verdadeiro jeito de encontrar os primos
Todo mundo aprende o Crivo de Eratóstenes na escola e acha que é só copiar a tabela pronta. Na prática, quando você precisa gerar uma lista confiável desses números — seja para um algoritmo, uma prova, ou um script — a diferença entre fazer certo e errar está em entender o que acontece nos detalhes. O crivo funciona assim: você pega todos os números de 2 a 200, elimina os múltiplos de 2, depois os de 3, depois 5, 7, 11 e 13. Parar no 13 é suficiente porque 17² já passa de 200. Sobram exatamente 46 números. Simples na teoria. Problemático na execução se você não prestar atenção.
Como obter numeros primos ate 200 de forma confiável
Eu já perdi tempo valuable numa entrevista técnica porque esqueci que 1 não é primo. A resposta padrão que eles queriam era uma função que retornasse uma lista, mas quando eu escrevi o código direto no quadro, deixei o 1 entrar por engano. O corretor não disse nada na hora, mas vi pelos olhos que tinha errado. A lição que ficou: sempre valide a fronteira. 1 é unidade, não primo. Ponto. Se você quiser a lista completa, gere com este raciocínio: comece com [2], depois teste cada ímpar seguinte contra os primos já encontrados até sua raiz quadrada. Se nenhum divisor encontrar, ele é primo. Para 199, por exemplo, você só precisa testar divisores até 14 — isso corta drasticamente o trabalho em comparação com testar todos os números até n-1.
Em Python, um gerador limpo fica assim: def primos_ate(n):
primos = []
for num in range(2, n + 1):
divisor = False
for p in primos:
if p * p > num:
break
if num % p == 0:
divisor = True
break
if not divisor:
primos.append(num)
return primos
Isso executa em microssegundos para n=200. Para n=1.000.000, aí sim você migra para o crivo segmentado.
Os primos de 1 a 200 — lista completa
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199 Contagem total: 46 primos. Desses, 25 estão abaixo de 100 e 21 acima de 100 até 200. A densidade cai conforme o número aumenta — isso é a distribuição dos primos em ação, algo que a Conjectura dos Primos Gêmeos tenta mapear mas ainda não resolveu completamente.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Armazenar em diferentes formatos
Dependendo do que você precisa, a saída muda. Para estudo, uma tabela simples basta. Para código, um array ou lista. Para transferência de dados, JSON ou CSV. Em JSON:
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199] Em Python:
primos = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
O que ninguém te conta sobre primos pequenos
A maioria dos tutoriais para de 100. Mas há pegadinhas até 200 que precisam ser sinalizadas. O primeiro: 2 é o único primo par. Qualquer algoritmo que assuma que todos os primos são ímpares vai falhar silenciosamente se não tratar o 2 separadamente. Eu já vi isso acontecer em code review várias vezes. Outro ponto: o gap entre primos consecutivos varia. Entre 88 e 89 o gap é 1. Entre 113 e 127 o gap é 14. Esse tipo de informação é útil quando você está otimizando hashes ou escolhendo tamanhos de tabela.
Uma questão que gera confusão constante: 1 não é primo. Já disse isso, mas repito porque aparece em respostas de gente experiente também. Primo tem exatamente dois divisores positivos. 1 tem apenas um. Fim da história. Se você precisa de algo além de 200, o crivo clássico ainda funciona até uns 10 milhões sem problemas de memória. Acima disso, considere o crivo segmentado ou o teste de Miller-Rabin para grandes números. E se o objetivo for apenas verificar se um número específico é primo dentro dessa faixa, uma lookup table com esses 46 valores é mais rápida do que qualquer cálculo em tempo real.
A lista completa de números primos até 200 tem 46 elementos e pode ser gerada, verificada ou consultada em menos de um milissegundo com o código acima. O resto é prática.