Bem vindo a aula 82 de nosso curso gratuito de programação com a linguagem C.
Na aula de hoje vamos continuar a resolução da nossa lista de exercícios, agora verificando se um número é primo ou não.
13) Faça um programa que peça ao usuário um número inteiro maior que 1 e diga se o número informado é primo ou não.
Na primeira parte da solução temos uma repetição do{}while para garantir que o valor digitado seja maior que 1. Na sequência, temos uma repetição que inicia em 2 e vai até a metade do valor inserido pelo usuário. O objetivo é contar quantos divisores existem nesse intervalo. Se existirem zero divisores então o número é primo (veja que excluímos os extremos 1 e o próprio valor), caso contrário, o número não é primo.
Uma outra repetição mais externa do tipo do{}while foi acrescentada para que vários testes possam ser feitos, finalizando o programa apenas quando o usuário escolher a opção 2, para sair.
#include <stdio.h>
#include <stdlib.h>
int main() {
int valor, i, divisores = 0, opcao;
do{
do{
printf("Digite um valor maior que 1: ");
scanf("%d", &valor);
}while(valor < 2);
printf("Divisores de %d: ", valor);
for(i = 2; i <= valor/2; i++){
if(valor % i == 0){
printf("%d ", i);
divisores++;
}
}
printf("\n");
if(divisores != 0)
printf("%d nao e primo\n", valor);
else
printf("%d e primo\n", valor);
printf("\n1 - Digitar outro valor\n2 - Sair\n");
scanf("%d", &opcao);
}while(opcao != 2);
}
