Faça um programa que leia um vetor de 15 posições com números inteiros. Crie, a seguir, um vetor resultante que contenha todos os números primos do vetor digitado. Escreva o vetor resultante.

Passo 1

Beleza, o problema pede um “programa” que leia 15 números inteiros, guarde-os num vetor e depois monte um vetor só com os que forem primos. Estamos trabalhando com vetores, laços (repetições) e condicionais, e vamos precisar saber como testar se um número é primo (ou seja, só tem divisores 1 e ele mesmo).

Passo 2

Primeiro a gente cria o vetor de entrada com 15 posições e um vetor “primos” vazio (ou de tamanho 15 também, mas vamos usar uma variável contador pra saber até onde ele está preenchido). Depois, lemos os 15 números normalmente (com for i de 0 a 14).

Passo 3

Pra testar se um número n é primo, lembramos da definição: ele só pode ser dividido sem resto por 1 e por ele mesmo. Logo, basta checar se existe algum divisor d entre 2 e raizn tal que
n bmod d = 0
Se encontrarmos um divisor assim, n não é primo; caso contrário, é primo. Usamos lfloor raiznrfloor pra não rodar divisões a mais.

Passo 4

Então, para cada n do vetor de entrada:
  1. Verificar se n > 1 (0 e 1 não são primos).
  2. Assumir éPrimo = true.
  3. Fazer for d from 2 to floor(sqrt(n)):
    • Se n bmod d = 0, então éPrimo = false e break.
  4. Se ao final éPrimo ainda for true, adiciona n ao vetor primos na posição contador e incrementa contador.

Passo 5

Depois de passar pelos 15 números, o vetor primos estará preenchido nas posições 0 até contador-1. Basta imprimir esses valores, e já era — só aparecem os primos que tinham no vetor original.

Resposta

// Vetores e variáveis
inteiro entrada[15]
inteiro primos[15]
inteiro contador ← 0

// Leitura dos 15 números
para i de 0 até 14 faça
  leia entrada[i]
fim para

// Processo de filtragem dos primos
para i de 0 até 14 faça
  n ← entrada[i]
  se n > 1 então
    booleano éPrimo ← verdadeiro
    para d de 2 até floor(sqrt(n)) faça
      se n mod d = 0 então
        éPrimo ← falso
        pare o laço
      fim se
    fim para
    se éPrimo então
      primos[contador] ← n
      contador ← contador + 1
    fim se
  fim se
fim para

// Impressão do vetor de primos
se contador = 0 então
  escreva "Não há números primos no vetor."
senão
  escreva "Números primos encontrados:"
  para i de 0 até contador-1 faça
    escreva primos[i]
  fim para
fim se

Exercícios relacionados