Crie um programa e um algoritmo para listar os 1000 primeiros números primos.

tabela números primos

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:

  • Crie uma função para descobrir se um número é ou não primo;
  • Utilize um laço (loop), para procurar os números;
  • Opcional, pense em uma forma para facilitar a visualização.

 

Veja em exemplo de saída:

números primos

 

Exemplo em C / C++

/******************************************************************************

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.

 

Exemplo em Pascal

{

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.

 

Exemplo em Python

'''

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.

 

Exemplo em C#

/******************************************************************************

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.

 

Exemplo em Java

/******************************************************************************

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!

 

  • Publicado por Giovani Da Cruz
  • 37 views
  • 0 comentarios
  • 23 de janeiro de 2024

 

Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados a Categoria Algoritmos com Laços

Continue aprendendo

Aumente o seu conhecimento
Crie um algoritmo e um programa que leia 5 números e escreva o maior e o menor desses 5 números, nessa ordem.
29 de abril de 2024
Crie um algoritmo e um programa que leia 5 números e informe o maior número
10 de abril de 2024
Crie um algoritmo e um programa que solicite ao usuário digitar seis números inteiros. O programa deverá somar os valores pares informados e mostrar o resultado desta soma na tela.
18 de fevereiro de 2024
Crie um algoritmo e um programa em que solicite ao usuário digitar sete números inteiros. O programa deverá contar e mostrar na tela a quantidade de valores ímpares informados.
15 de fevereiro de 2024
Crie um algoritmo e um programa que leia 5 números e mostre o maior e o menor.
5 de fevereiro de 2024
Crie um programa e um algoritmo para listar os 4 primeiros números perfeitos.
19 de janeiro de 2024
Crie um programa e um algoritmo para listar os 1000 primeiros números felizes.
4 de dezembro de 2023
Crie um algoritmo e um programa para descobrir os 100 primeiros naturais que possuam raízes quadradas inteiras
28 de novembro de 2023
Exercício de algoritmo: Sequência de Fibonacci
24 de novembro de 2023
Exemplo de como simular uma barra de progresso em modo console
15 de novembro de 2023