Vamos a mais uma aula de dúvida? E nesta aula veremos como descobrir todos os números primos entre 1 e 500.
Como nós queremos descobrir os números primos dentro de um intervalo de números, é interessante criar uma função que, dado um determinado número, diz se ele é primo ou não.
Para descobrir se um número n é primo ou não basta contar seus divisores entre 1 e n. Se ele possuir exatamente 2 divisores, então é um número primo (divisível por e por ele mesmo). Caso contrário, não é um número primo.
A função a seguir faz exatamente isso. Se o número de divisores de n for exatamente 2, então retorna 1, é primo. Caso contrário, retorna 0, não é primo.
funcao inteiro ePrimo(inteiro n){ inteiro i, divisores = 0 para(i = 1; i <= n; i++){ se(n % i == 0) divisores++ } se(divisores == 2) retorne 1 // n é primo senao retorne 0 // n não é primo }
Com a função pronta, precisamos apenas fazer uma repetição de 1 a 500 em nosso procedimento inicio, chamando nossa função para cada valor e verificando seu retorno, assim:
escreva("Primos entre 1 e 500.\n") para(i = 1; i <= 500; i++){ se(ePrimo(i) == 1){ escreva(i," ") } }
Código completo em Portugol para descobrir os números primos entre 1 e 500
programa{ /* Desenvolva um algoritmo que apresente todos os números primos de 1 a 500. Escrito por Wagner Gaspar Abril de 2021 */ funcao inteiro ePrimo(inteiro n){ inteiro i, divisores = 0 para(i = 1; i <= n; i++){ se(n % i == 0) divisores++ } se(divisores == 2) retorne 1 // n é primo senao retorne 0 // n não é primo } funcao inicio(){ inteiro i para(i = 1; i <= 500; i++){ se(ePrimo(i) == 1){ escreva(i," ") } } } }