Exercícios Resolvidos de Comando do while

Ver Teoria

Enunciado

Escreva um programa que imprime todos os n números primos entre 2 e n, sendo n informado pelo usuário.

Passo 1

Antes de tudo, vamos definir o escopo do nosso programa.

Passo 2

Com o escopo do programa definido, nós podemos declarar as variáveis que serão úteis.

Informações sobre as variáveis:

  • n é uma variável responsável por armazenar o limite do intervalo;
  • i é uma variável contadora responsável por gerenciar a estrutura de repetição principal do programa;
  • j é uma variável contadora responsável por gerenciar a estrutura de repetição que verifica se um é primo;
  • flag é uma variável representativa do tipo booleano responsável por armazenar se um número possui ou não mais que dois divisores.

Passo 3

Agora que já temos todas as informações das variáveis que utilizaremos, está na hora de requisitarmos a entrada do programa ao usuário.

Essa entrada é o número n que determina o fim do intervalo de comparações.

Passo 4

Entraremos agora na principal lógica de instruções do programa, ela constitui toda verificação se um número é ou não primo.

É sempre bom lembrar que essa estrutura de repetição não é a mais adequada para esse exercício, mas estamos utilizando-a principalmente para verificarmos que independente de qual utilizarmos conseguimos resolver problemas que envolvem repetições (mesmo que de uma forma mais longa).

Basicamente utilizaremos um laço de repetição do while controlado pela variável i (inicializada com o valor 2) que será incrementada até i ser igual a n – 1. Os resets feitos na linha 09 se referem a segunda estrutura do while, essa que é controlada pela variável contadora j e tem simplesmente a função de verificar se o número processado por i naquele momento possui ou não algum divisor que quebra a regra de número primo.

Com isso, para cada valor de i a variável j será reinicializada com o valor 2 e incrementada até atingir o valor i – 1 procurando divisores. Caso encontre, o número i não é primo e uma variável flag (também reinicializada na linha 09) recebe o valor 1.

Ao sair da segunda estrutura de repetição e retornar para a principal, uma verificação da variável flag é realizada. Se o valor dela for 0, quer dizer que nenhum outro divisor foi encontrado e se trata de um número primo que deve ser impresso.

Esse processo se repetirá exatamente da mesma forma até que o laço principal atinja a falha da condição de execução do laço do while.

Resposta

Ei, a resposta está no passo a passo :)