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 tal que
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
Se encontrarmos um divisor assim,
n
não é primo; caso contrário, é primo. Usamos
Passo 4
Então, para cada
n
do vetor de entrada:- Verificar se
n > 1
(0 e 1 não são primos). - Assumir
éPrimo = true
. - Fazer
for d from 2 to floor(sqrt(n))
:- Se
, então éPrimo = false
ebreak
.
- Se
- Se ao final
éPrimo
ainda fortrue
, adicionan
ao vetorprimos
na posiçãocontador
e incrementacontador
.
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