⚙️ Problema: Utilizando a linguagem C desenvolva um programa que calcula os 100 primeiros números primos.
⁉️ O que é um Número Primo?
Em matemática, um número primo é um número natural maior que 1 que é divisível apenas por 1 e por ele mesmo. Em outras palavras, um número é primo se ele possui exatamente dois divisores: 1 e ele mesmo.
Esta propriedade é importante em diversas aplicações matemáticas, incluindo criptografia e análise numérica. Além disso, os números primos são fundamentais para a compreensão da teoria dos números e para a construção de outros algoritmos matemáticos.
💾 Programa:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <stdio.h> // Função para verificar se um número é primo int primo(int n) { int i, divisores = 0; // Percorre todos os números de 1 até n para verificar os divisores for (int i = 1; i <= n; i++) if (n % i == 0) divisores++; // Se o número possui exatamente 2 divisores, é primo (1 e ele mesmo) if (divisores == 2) return 1; else return 0; } int main(void) { // Verifica e exibe os números primos de 1 a 100 for (int i = 1; i <= 100; i++) if (primo(i) == 1) printf("%d ", i); printf("\n"); return 0; } |
—
🙋♂️ Explicando:
Este código em Linguagem C imprime todos os números primos entre 1 e 100. A lógica principal do programa está na função primo()
. Essa função recebe um inteiro n
como entrada e retorna 1 se ele for primo e 0 caso contrário.
A ideia aqui para, determinar se um número é primo, é contar quantos divisores ele tem. Se o número tiver apenas 2 divisores (1 e ele mesmo), ele é considerado primo. Caso contrário, não é primo.
A função primo()
usa um loop para percorrer todos os números entre 1 e n
. Para cada número i
no loop, verifica-se se n
é divisível por i
. Se for, o contador de divisores é incrementado. No final do loop, se o contador de divisores for igual a 2, a função retorna 1, indicando que n
é primo. Se o contador for diferente de 2, a função retorna 0, indicando que n
não é primo.
A função main()
é a função principal do programa. Ela usa um loop para percorrer todos os números entre 1 e 100. Para cada número i
, a função primo(i)
é chamada. Se o resultado da função for 1, indicando que i
é primo, ele é impresso na tela. No final, o programa imprime uma nova linha e retorna 0, indicando que o programa terminou com sucesso.
*Atualizado em 5 de julho de 2023
Versão em Python com a utilização de funções:
—
A função is_prime(n) verifica se um número n é primo. Ela utiliza um loop que percorre os números de 2 até a raiz quadrada de n, verificando se há divisão exata entre n e algum número. Se uma divisão exata for encontrada, o número não é primo e a função retorna False. Caso contrário, o número é considerado primo e a função retorna True.
A função print_primes() é responsável por percorrer os números de 1 a 100 e chamar a função is_prime() para verificar se cada número é primo. Se o número for primo, ele é impresso na tela utilizando o comando print(), com o parâmetro end=’ ‘ para separar os números por espaço.
Ao final da execução, é exibido um caractere de nova linha, garantindo a separação dos números primos exibidos na tela.
O código foi organizado em funções para facilitar a reutilização e a compreensão do programa. A função print_primes() é responsável por coordenar a lógica principal do programa, chamando a função auxiliar is_prime() para verificar a primalidade de cada número.