Fala galera da programação, tudo beleza? Números primos! Misteriosos e muito usando no mundo da computação.
Sabemos que um número primo é o número que somente é divisível por 1 e por ele mesmo. Bem o desafio de hoje é fazer um programa que liste os 1.000 primeiros números primos.
Dicas:
Veja em exemplo de saída:
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ #include <iostream> #include <vector> bool isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i * i <= num; ++i) { if (num % i == 0) { return false; } } return true; } int main() { std::vector<int> primeNumbers; int currentNumber = 2; while (primeNumbers.size() < 1000) { if (isPrime(currentNumber)) { primeNumbers.push_back(currentNumber); } ++currentNumber; } // Exibindo os 1000 primeiros números primos for (int i = 0; i < primeNumbers.size(); ++i) { std::cout << primeNumbers[i] << " "; if ((i + 1) % 10 == 0) { // Quebrar a linha a cada 10 números para melhor visualização std::cout << std::endl; } } return 0; }
Este programa utiliza a função isPrime
para verificar se um número é primo e então armazena os primeiros 1000 números primos em um vetor chamado primeNumbers
. O loop final exibe os números primos, quebrando a linha a cada 10 números para melhor visualização.
É necessário lembrar de que encontrar números primos pode ser uma tarefa demorada, especialmente para grandes quantidades. Este código é eficiente o suficiente para encontrar os primeiros 1000 primos, mas pode ser lento se você precisar de uma quantidade significativamente maior.
{ Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br } program ProgramaPrimeNumbers; const MAX_PRIME_COUNT = 1000; var primeNumbers: array[1..MAX_PRIME_COUNT] of Integer; currentNumber, count, i: Integer; function IsPrime(num: Integer): Boolean; var i: Integer; begin if num < 2 then IsPrime := False else begin IsPrime := True; for i := 2 to Trunc(Sqrt(num)) do begin if num mod i = 0 then begin IsPrime := False; Break; end; end; end; end; begin currentNumber := 2; count := 0; while count < MAX_PRIME_COUNT do begin if IsPrime(currentNumber) then begin Inc(count); primeNumbers[count] := currentNumber; end; Inc(currentNumber); end; // Exibindo os 1000 primeiros números primos for i := 1 to MAX_PRIME_COUNT do begin Write(primeNumbers[i], ' '); if (i mod 10 = 0) then Writeln; // Quebrar a linha a cada 10 números para melhor visualização end; Readln; end.
Este código em Pascal é uma adaptação direta do código em C++. Ele utiliza a função IsPrime
para verificar se um número é primo e armazena os primeiros 1000 números primos em um array chamado primeNumbers
. O loop final exibe os números primos, quebrando a linha a cada 10 números para melhor visualização.
''' Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br ''' def is_prime(num): if num < 2: return False for i in range(2, int(num**0.5) + 1): if num % i == 0: return False return True def generate_primes(count): prime_numbers = [] current_number = 2 while len(prime_numbers) < count: if is_prime(current_number): prime_numbers.append(current_number) current_number += 1 return prime_numbers def main(): prime_numbers = generate_primes(1000) # Exibindo os 1000 primeiros números primos for i, prime in enumerate(prime_numbers, start=1): print(prime, end=' ') if i % 10 == 0: # Quebrar a linha a cada 10 números para melhor visualização print() if __name__ == "__main__": main()
Neste código Python, a função is_prime
verifica se um número é primo, a função generate_primes
gera os primeiros 1000 números primos e a função main
exibe os números primos, quebrando a linha a cada 10 números para melhor visualização.
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ using System; class Program { static bool IsPrime(int num) { if (num < 2) { return false; } for (int i = 2; i * i <= num; ++i) { if (num % i == 0) { return false; } } return true; } static int[] GeneratePrimes(int count) { int[] primeNumbers = new int[count]; int currentNumber = 2; int index = 0; while (index < count) { if (IsPrime(currentNumber)) { primeNumbers[index] = currentNumber; ++index; } ++currentNumber; } return primeNumbers; } static void Main() { int[] primeNumbers = GeneratePrimes(1000); // Exibindo os 1000 primeiros números primos for (int i = 0; i < primeNumbers.Length; ++i) { Console.Write(primeNumbers[i] + " "); if ((i + 1) % 10 == 0) { // Quebrar a linha a cada 10 números para melhor visualização Console.WriteLine(); } } } }
Este código em C# possui uma função IsPrime
para verificar se um número é primo, uma função GeneratePrimes
para gerar os primeiros 1000 números primos e o método Main
para exibir os números primos, quebrando a linha a cada 10 números para melhor visualização.
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ public class PrimeNumbers { static boolean isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i * i <= num; ++i) { if (num % i == 0) { return false; } } return true; } static int[] generatePrimes(int count) { int[] primeNumbers = new int[count]; int currentNumber = 2; int index = 0; while (index < count) { if (isPrime(currentNumber)) { primeNumbers[index] = currentNumber; ++index; } ++currentNumber; } return primeNumbers; } public static void main(String[] args) { int[] primeNumbers = generatePrimes(1000); // Exibindo os 1000 primeiros números primos for (int i = 0; i < primeNumbers.length; ++i) { System.out.print(primeNumbers[i] + " "); if ((i + 1) % 10 == 0) { // Quebrar a linha a cada 10 números para melhor visualização System.out.println(); } } } }
Este código em Java, assim como os exemplos acima, possui um método isPrime
para verificar se um número é primo, um método generatePrimes
para gerar os primeiros 1000 números primos e o método main
para exibir os números primos, quebrando a linha a cada 10 números para melhor visualização.
Beleza pessoal? Espero que tenham gostado.
Dúvidas ou sugestão de outras linguagens? Deixe o seu comentário!
Um abraço e até o próximo post. Valeu!
Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!