⚠️ Novidade no blog! ⚠️

O conteúdo dos Cursos, Trilhas e Livros Resolvidos está sendo movido para kdosh.net/edu. Acesse e divulgue!


PROBLEMA: Utilizando a linguagem Python desenvolva um programa que calcula os 100 primeiros números primos.

Sabe-se que um número inteiro positivo n é primo se for divisível apenas por 1 e por ele mesmo. Por exemplo: 2, 3, 5, 7…

Portanto, dado um número inteiro n qualquer, devemos considerar o seguinte:

  • Se n ≤ 1, n não é primo;
  • senão, o algoritmo deverá procurar e contar seus divisores.

Uma solução possível é dada no algoritmo a seguir.

ALGORITMO:

Explicando:

  1. A função primo(n) é definida. Ela recebe um argumento n e retorna 1 se o número for primo e 0 caso contrário.
  2. A variável divisores é inicializada com 0.
  3. O loop for percorre todos os números de 1 a 100 (inclusive). Para cada número i neste intervalo, verifica-se se n é divisível por i (n % i == 0).
  4. Se houver uma divisão sem resto, o número de divisores é incrementado (divisores = divisores + 1).
  5. Após o loop, verifica-se se o número de divisores é igual a 2. Se for, significa que n é divisível apenas por 1 e por ele mesmo, então é primo e a função retorna 1.
  6. Se o número de divisores não for igual a 2, significa que ele é divisível por outros números além de 1 e ele mesmo, então não é primo e a função retorna 0.
  7. O loop for externo percorre todos os números de 1 a 100 (inclusive). Para cada número i, a função primo(i) é chamada.
  8. Se a função retornar 1 para algum número i, este número é impresso na tela.


Outra versão:

Explicando:

  1. A função primo(num) é definida. Ela recebe um argumento num e retorna True se esse número for primo, e False caso contrário.
  2. O primeiro passo dentro da função é verificar se num é menor que 2. Se for, retorna False, pois nenhum número menor que 2 pode ser primo.
  3. Em seguida, ocorre o loop for, que percorre todos os números de 2 a num-1 (inclusive). Para cada número i neste intervalo, verifica-se se num é divisível por i (num % i == 0).
  4. Se houver alguma divisão sem resto, o número não é primo e a função retorna False.
  5. Se o loop for terminar sem retornar False, significa que num não é divisível por nenhum número no intervalo de 2 a num-1, portanto é primo e a função retorna True.
  6. O loop for externo percorre todos os números de 1 a 100 (inclusive). Para cada número i, a função primo(i) é chamada.
  7. Se a função retornar True para algum número i, este número é impresso na tela.

*Atualizado em 30 de janeiro de 2023

Estude a Bíblia!
Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments