Crie um algoritmo que leia um número N e imprima os N primeiros números primos. O seu programa deve fazer o MíNIMO de interações possíveis.

Passo 1

Beleza, vamos lá! A gente tem que criar um algoritmo que recebe um número e mostra os primeiros números primos. Primos são aqueles números maiores que 1 que só são divisíveis por 1 e por eles mesmos. Então, pra resolver isso, vamos precisar saber como identificar se um número é primo e como gerar os primeiros primos de forma eficiente, sem fazer muitas verificações desnecessárias.

Passo 2

Primeiro, a gente precisa de uma forma de verificar se um número é primo. Para isso, vamos criar uma função que recebe um número e retorna verdadeiro se ele for primo e falso se não for. A ideia é tentar dividir esse número por todos os números menores que ele, começando de 2, e ver se tem algum que divide sem deixar resto.

Passo 3

Mas, pra otimizar, em vez de testar todos os números até , a gente pode testar apenas até a raiz quadrada de . Isso porque, se tem um divisor maior que a raiz quadrada de , ele vai ter um divisor menor também. Então, isso já diminui bastante o número de verificações.

Passo 4

Agora, vamos criar um contador para contar quantos primos já encontramos e uma variável para os números que estamos testando. Começamos com o número 2, que é o primeiro primo, e vamos testando cada número seguinte até encontramos primos.

Passo 5

Dentro de um laço (loop), vamos usar a função de verificação de primo para cada número. Se for primo, a gente imprime ele e incrementa o contador. A gente continua esse processo até que o contador chegue em .

Resposta

Aqui está um exemplo de como isso pode ser implementado em Python:
import math

def eh_primo(n):
    if n < 2:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

def imprimir_primos(N):
    contador = 0
    num = 2
    while contador < N:
        if eh_primo(num):
            print(num)
            contador += 1
        num += 1

# Exemplo de uso
N = int(input("Digite o valor de N: "))
imprimir_primos(N)
Esse código vai ler um número e imprimir os primeiros números primos, utilizando o mínimo de verificações possíveis graças à otimização na função de verificação de primos.

Exercícios relacionados

Cálculo aproximado de (Pi) pelo Método de Monte Carlo.
Dada a função
calcule o valor aproximado de com interações. Dicas: use random.random() * 2 para gerar valores entre 0 e 2 para as variáveis x e y e conte o número de pontos que satisfazem a equação dada e divida o resultado por . Cuidado com o tipo de dados.
Ler um vetor de números inteiros de 30 posições. Depois, ler um número inteiro , imprimir quantas vezes o número X aparece no vetor.
Crie um algoritmo se imprima os N primeiros números que sejam primos e façam parte da série de Fibonacci UTILIZANDO OBRIGATORIAMENTE FUNÇÕES.
Crie um algoritmo que leia um número decimal (com qualquer número de dígitos) e o converta para a base hexadecimal. A resposta deve ser dada em string.