Leia 10 números inteiros e armazene em um vetor. Em seguida escreva os elementos que são primos e suas respectivas posições no vetor.

Passo 1

O enunciado pede para ler 10 números inteiros, guardar num vetor e depois identificar quais desses números são primos e em que posições do vetor eles aparecem. O conteúdo aqui envolve vetores, laços de repetição e teste de primalidade.

Passo 2

Para testar se um número inteiro n é primo, precisamos lembrar que um primo é um número maior que 1 que não possui divisores inteiros além de 1 e ele mesmo. Em vez de tentar dividir por todos os números de 2 até n-1, basta testar os divisores de 2 até lfloorraiznrfloor. Se nenhum deles dividir n sem resto, então n é primo.
Vamos criar uma função auxiliar éPrimo(n) que faz esse teste de forma eficiente. A ideia é: se n<=1 retorna falso; senão, para cada d de 2 até lfloorraiznrfloor, checar se nbmod d = 0. Se encontrar divisor, retorna falso; caso contrário, retorna verdadeiro.

Passo 3

No programa principal, declaramos um vetor de tamanho 10. Fazemos um laço de leitura de 0 até 9 para preencher o vetor com os 10 números informados pelo usuário.
Após ler todos os elementos, percorremos o vetor novamente de 0 a 9. Para cada índice i, chamamos éPrimo(vetor[i]). Se for verdadeiro, escrevemos o valor vetor[i] e a posição i.

Resposta

Pseudocódigo da solução:
var vetor: inteiro[10]
função éPrimo(n: inteiro): booleano
se n ≤ 1 então
retorne falso
para d de 2 até ⌊√n⌋ faça
se n mod d = 0 então
retorne falso
retorne verdadeiro
início
para i de 0 até 9 faça
leia vetor[i]
para i de 0 até 9 faça
se éPrimo(vetor[i]) então
escreva “Número primo:”, vetor[i], “na posição”, i
fim

Exercícios relacionados