"Dizia eu que a aritmética... "
Para ajudar a resolução do problema, divide-se o desenvolvimento do programa em 5 etapas:
Etapa 1
Crie uma função, dado um valor X, verifica-se se X é um numero primo.
Por exemplo, se o usuário entra com o valor X = 3, deve-se retornar 1, pois 3 é primo. Se o usuário entra com o valor X = 4, deve-se retornar 0, por 4 não é primo.
Etapa 2
Utilizando a primeira função, crie outra que retorna, dado o valor i, o i-ésimo numero primo, lembrando que 1 não é primo.
Por exemplo, se o usuário entra com o valor i = 1, deve-se retornar 2, pois o primeiro numero primo é 2. Se o usuário entrar com o valor i = 7, deve-se retornar 13, pois o sétimo numero primo é 13.
Etapa 3
Na função principal, crie uma rotina que divide o numero N entrado pelo usuário por 2 e atribui o resultado em N, até que N não seja mais divisivel por 2.
Por exemplo, se o usuário entra com o número N = 60, deve-se divide por 2 e atribuir o resultado em N ficando 30, em seguida, repete-se a divisão até que N = 15. Como 15 não é divisível por 2, neste momento para-se as divisões.
Etapa 4
Modifique a rotina criada na etapa anterior, colocando outra estrutura de repetição que incrementa P, de modo que quando N deixar de ser divisivel por P, P torna-se o próximo numero primo. Lembrando que P deve começar por 2, já que 2 é primo.
Por exemplo, quando N = 60, divide-se por 2 até que N = 15. Depois divide-se por 3 até que N = 5, e depois por 5 até que N = 1.
Etapa 5
Finalmente elabore um programa em C que resolva o problema enunciado ao topo.
Provavelmente o programa feito nessas etapas não será o mais eficiente possível para se resolver o problema, mas acredito que o processo ficou bem didático. Melhorias no código podem ser feitas depois.
Nenhum comentário:
Postar um comentário