aula 82

Exe. 13 | Faça um programa que leia um número inteiro maior que 1 e diga se ele é primo

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

Deixe um comentário

5 + 5 =

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.