Como determinar se um número é primo em C
Olá pessoal!
Seguindo com nossa série de códigos de exemplo para estudo da linguagem C, vamos ver um pequeno programa que permite descobrir se um número dado é primo ou não.
Como sabemos, um número é primo se ele for divisível (divisão inteira) apenas por si mesmo e por 1. Por exemplo:
- O número 17 é primo, pois só é divisível por 17 (ele próprio) e por 1.
- Já o número 18 não é primo, pois além de ser divisível por si mesmo e por 1, também é divisível por outros números, como 2, 3, 6 e 9.
Então, para determinarmos se um dado número é primo, precisamos verificar sua divisibilidade inteira. Para isso, podemos realizar divisões sucessivas do número dado por todos os números a partir de 2 até a metade dele próprio, verificando o resto da divisão. Se o resto for 0 em algum momento, significa que houve uma divisão inteira por um valor diferente de 1 e do número em si, e o número não é primo. Caso contrário, se o resto for diferente de 0 em todas as divisões, o número é primo.
A seguir, temos o código em C que implementa essa função:
Código
#include<stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, ""); int num, i, resultado = 0; printf("Digite um número: "); scanf("%d", &num); for (i = 2; i <= num / 2; i++) { if (num % i == 0) { resultado++; break; } } if (resultado == 0) printf("%d é um número primo\n", num); else printf("%d não é um número primo\n", num); return 0; }
Neste programa simples, declaramos três variáveis: num, i e resultado, que serão usadas para receber o número digitado pelo usuário, contador no processo de verificação de número primo, e para receber o resultado do cálculo, respectivamente.
Usamos as instruções #include <locale.h> e setlocale(LC_ALL,” “) para oferecer suporte ao idioma português na aplicação, de modo a exibir corretamente caracteres especiais e acentuados. Mas ela não é essencial para a execução da aplicação.
A figura a seguir mostra a execução do programa, verificando se um número é primo ou não:
É isso aí pessoal!
Até o próximo tutorial!
Recomendado: Arrays em C – Declaração, Inicialização e Atribuição de valores