O que são números primos e como identificá-los
Número primo é aquele que só se divide igualmente por 1 e por ele mesmo. Nada mais. Quando você tenta dividir por qualquer outro número inteiro, sobra algo. Esse "algo" é o resto da divisão, e quando ele é zero, a coisa já era — o número não é primo. Acho que todo mundo aprende isso na escola, mas a maioria esquece rápido porque raramente pratica. Vou explicar do jeito que eu uso na vida real, não do jeito que os livros dizem.
Como listar numeros primos ate 30 passo a passo
Pega o crivo de Eratóstenes. É simples: escreve os números de 2 até 30, marca o 2 como primo, risca todos os múltiplos dele (4, 6, 8, 10...), vai para o próximo não riscado, que é o 3, marca como primo e risca todos os múltiplos dele (6, 9, 12, 15, 18, 21, 24, 27, 30), depois faz o mesmo com o 5. O 7 você nem precisa riscar tudo porque 7² é 49, que já passa de 30. Os que sobrarem sem risco são os primos. O resultado fica assim: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29. Dez números no total. Parece muito fácil até você tentar fazer isso de cabeça em uma reunião e começar a errar os múltiplos do 7.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Aqui vai uma coisa que poucos ensinam: você só precisa testar divisores até a raiz quadrada do número. Para 29, a raiz quadrada dá cerca de 5,39. Então basta tentar dividir por 2, 3 e 5. Se nenhum deles funcionar, o número é primo. Não adianta testar 7 ou 11 — se tivesse um fator maior que a raiz, teria um correspondente menor que ela, e você já teria encontrado. Isso corta bastante trabalho quando o número sobe. Um detalhe chato que me atrapalhou muito no início: o número 1 não é primo. Nunca foi. A definição exige exatamente dois divisores positivos, e o 1 só tem um. Já vi gente deixar o 1 entrar na lista de primos e aí a matemática toda desandava. Fatoração única, teorema fundamental da aritmética — tudo depende de 1 não ser primo. Se você tratar 1 como primo, começa a ter problemas sérios em criptografia RSA e em algoritmos de criptografia em geral.
Outro problema que encontrei na prática: quando alguém pede para gerar primos acima de 1000 manualmente, o crivo de Eratóstenes feito à mão vira uma dor de cabeça. Eu cheguei a fazer isso numa ocasião e perdi uns 20 minutos só para encontrar um erro de marcação. O workaround foi escrever um script bem simples em Python usando uma lista booleana, onde cada índice representa um número e o valor indica se é primo ou não. A complexidade fica em O(n log log n), que é mais do que suficiente para a maioria dos casos práticos. Com esse script, a geração de primos até 1000 leva menos de 50 milissegundos no meu computador. Uma limitação importante do crivo de Eratóstenes é que ele consome memória proporcional ao intervalo. Para primos até 30 não tem problema algum, mas quando o intervalo sobe para milhões ou bilhões, você começa a precisar de versões otimizadas com crivo segmentado para não estourar a memória. Nesse caso, o algoritmo de Sieve of Atkin ou até mesmo testes probabilísticos como Miller-Rabin entram em cena, dependendo do que você precisa.