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); }