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
é 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é
, basta testar os divisores de 2 até
. Se nenhum deles dividir
sem resto, então
é primo.
Vamos criar uma função auxiliar éPrimo(n) que faz esse teste de forma eficiente. A ideia é: se retorna falso; senão, para cada
de 2 até
, checar se
. Se encontrar divisor, retorna falso; caso contrário, retorna verdadeiro.
Vamos criar uma função auxiliar éPrimo(n) que faz esse teste de forma eficiente. A ideia é: se
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 , chamamos éPrimo(vetor[i]). Se for verdadeiro, escrevemos o valor
e a posição
.
Após ler todos os elementos, percorremos o vetor novamente de 0 a 9. Para cada índice
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
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
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