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," ")
}
}
}
}
