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!
Resposta
Ei, a resposta está no passo a passo :)