aula 313

Como descobrir todos os números primos entre 1 e 500?

Vamos a mais uma aula de dúvida? E nesta aula veremos como descobrir todos os números primos no intervalo entre 1 e 500 com a linguagem de programação C.

Perceba que desejamos descobrir um conjunto de valores, os números primos existentes entre 1 e 500. Contudo, antes de procurarmos por esse conjunto de valores, precisamos saber o que significa número primo. Dizendo em palavras, como saber de um número é primo ou não?

Para isso precisamos recorrer ao conceito matemático de números primos.

Número Primo

É dito primo todo número que possui apenas dois divisores inteiros.

Expressando essa definição em outros termos, significa que todo número primo é divisível de forma exata apenas por 1 e por ele mesmo.

O primeiro número primo é o 2. Observe que o número 2 é divisível de forma exata apenas por 1 e por ele mesmo.

O 167 também é um número primo. Isso significa que ele também é divisível apenas por 1 e por 167.

Agora, antes de procurar por todos os números primos entre 1 e 500, precisamos escrever um código que, dado um número inteiro qualquer, nos diga se ele é primo ou não. Isso tem a cara de uma função, não é?

O trecho de código a seguir faz exatamente isso. É uma função que recebe um número inteiro e retorna 1, caso ele seja um número primo, e zero caso contrário. Para descobrir se o número é primo ou não é feita uma iteração (repetição) iniciando em 1 e indo até o número que desejamos descobrir se é primo ou não. Nesta repetição contamos os divisores do número. Ao final, basta verificar se a quantidade de divisores é exatamente igual a 2. Se for, então ele é primo (divisível apenas por 1 e por ele mesmo), senão, não é primo.

int ehPrimo(int x){
    int i, divisores = 0;

    for(i = 1; i <= x; i++){
        if(x % i == 0)
            divisores++;
    }

    if(divisores == 2)
        return 1;// é primo
    else
        return 0; // não é primo
}

Agora que já sabemos identificar se um número é primo ou não, basta chamar nossa função para todos os números que desejamos verificar. Como queremos os primos entre 1 e 500, basta fazer uma repetição para este intervalo e, para cada valor, chamar nossa função e verificar seu retorno, como feito na função principal a seguir.

int main(){
    int i;

    for(i = 1; i <= 500; i++){
        if(ehPrimo(i) == 1) // se for primo
            printf("%d, ", i); // imprime na tela
    }
    return 0;
}

Código completo em C

#include <stdio.h>
#include <stdlib.h>

/*
              Código escrito por Wagner Gaspar
              em 23/05/2022
*/

int ehPrimo(int x){
    int i, divisores = 0;

    for(i = 1; i <= x; i++){
        if(x % i == 0)
            divisores++;
    }

    if(divisores == 2)
        return 1;// é primo
    else
        return 0; // não é primo
}

int main(){
    int i;

    for(i = 1; i <= 500; i++){
        if(ehPrimo(i) == 1) // se for primo
            printf("%d, ", i); // imprime na tela
    }
    return 0;
}

Deixe um comentário

três × 2 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.