Responde Aí

Exercícios Resolvidos de Comando while

Ver Teoria

Enunciado

Faça um programa que dado um número inteiro positivo digitado pelo usuário imprima o próximo número primo.

Passo 1

Como sempre, a primeira coisa que nós devemos fazer é definir o escopo do programa.

Passo 2

Com o escopo definido, nós podemos agora declarar e inicializar todas aquelas variáveis que serão úteis.

Informações sobre as variáveis:

  • n armazenará o número digitado pelo usuário;
  • i variável contadora que será incrementada até armazenar o valor do próximo número primo;
  • j variável contadora que será reinicializada a cada loop para testar a divisibilidade de i em um intervalo;
  • marcador armazenará se o número é ou não divisível por outro número em um intervalo.

Passo 3

Com as variáveis declaradas e inicializadas, nós podemos requisitar a entrada de um número ao usuário do programa.

Passo 4

Para de fato identificarmos o próximo número primo, nós utilizaremos comandos de repetição while aninhados.

Tendo em i o valor do próximo número (n + 1), o primeiro laço de repetição tem o papel de incrementar unitariamente valores em i até que um deles seja primo. Porém, a verificação de número primo ocorre somente no segundo laço de repetição, que tem o objetivo de testar a divisibilidade do número fornecido pelo primeiro laço em um intervalo que vai de 2 até i – 1, uma vez que todo número primo é divisível por 1 e por ele mesmo.

Apesar da lógica estar bem definida, existem algumas questões mais técnicas como a utilização da variável marcador que controla a execução dos laços junto com as variáveis contadoras i e j.

A função de marcador consiste em armazenar verdadeiro sempre que um divisor é encontrado (excluindo o número 1 e o próprio i testado naquele momento). Sendo verdadeira, o primeiro laço sabe que deve testar um novo número através do comando if, incrementando a variável contadora i, caso contrário, não foi encontrado nenhum divisor de i no intervalo de 2 até i - 1, logo encontramos o próximo número primo e o laço é encerrado com um comando break.

Ah, não podemos esquecer que para saber se um número é divisível por outro basta analisarmos se o resto da divisão é igual a 0, foi justamente esse método que utilizamos no código através de um comando if.

Passo 5

Ufa... Depois de tudo isso, basta imprimirmos o próximo número primo!