Ajude nosso projeto a se manter online.

Par ou Ímpar em C++ - Como descobrir (e outros múltiplos)

Baixar a apostila C++ Progressivo
Neste tutorial de nossa Apostila de C++, vamos aprender como descobrir se um determinado número é par ou ímpar (bem como utilizar outros múltiplos, além do 2).

Par ou Ímpar em C++

Agora que já aprendemos sobre o teste condicional IF / ELSE, bem como os operadores matemáticos, vamos aprender como usar o operador de resto da divisão (%) para verificar e descobrir se um determinado número é par ou ímpar.

Números pares são, na verdade, números que são múltiplos de 2.
Ou seja, que são formados pelo número 2 multiplicado por outro número inteiro qualquer.

Veja alguns exemplos:
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
...

Ou seja, para saber se um número num armazena um par, basta testar se seu resto da divisão por 2 é igual a 0. O teste condicional que representa isso é:
  • (num % 2 == 0)

Se tal operação retornar verdadeiro, é par.
Caso contrário (ELSE), é porque o número é ímpar (é sempre par ou ímpar).

Veja como fica nosso código C++, de um programa que pede um inteiro ao usuário e diz se é par ou ímpar:
#include <iostream>
using namespace std;

int main()
{
    int num;

    cout << "Digite um numero: ";
    cin >> num;

    if (num%2==0)
        cout <<"É par"<<endl;
    else
        cout <<"É impar"<<endl;
    return 0;
}

Múltiplo de 3

Como dissemos, o número par nada mais é que um número múltiplo de 2.
Existem também os múltiplos de 3, de 4, de 5, ...

Por exemplo, os números múltiplos de 3 são:
3x1=3
3x2=6
3x3=9
3x4=12

Para descobrir se determinado número é múltiplo de 3, basta verificar o resto da divisão de qualquer número por 3, veja como fica nosso código:
#include <iostream>
using namespace std;

int main()
{
    int num;

    cout << "Digite um numero: ";
    cin >> num;

    if (num%3==0)
        cout <<"É multiplo de 3"<<endl;
    else
        cout <<"Não é multiplo de 3"<<endl;
    return 0;
}

Números múltiplos

Faça um programa que recebe dois números inteiros: num1 e num2.
Em seguida, verifique se num1 é múltiplo de num2.


#include <iostream>
using namespace std;

int main()
{
    int num1, num2;

    cout << "Primeiro numero: ";
    cin >> num1;

    cout << "Segundo numero : ";
    cin >> num2;

    if (num1%num2==0)
        cout <<num1<<" é múltiplo de "<<num2<<endl;
    else
        cout <<num1<<" não é múltiplo de "<<num2<<endl;
    return 0;
}

4 comentários:

  1. Bom dia!

    Gostei muito de seu site, o conteudo é muito bom! Parabéns!
    Podes me tirar uma dúvida? tentei usar o isdigit para impedir que uma letra/frase digitada desse como resultado "impar", mas ao usa-lo TODOS os resultados viram impar...

    assim: if(isdigit(number) && number & 2 == 0)...

    desde já agradeço e parabéns novamente.

    ResponderExcluir
    Respostas
    1. Sugeria que você desse uma analisada na função atoi(). Ficaria mais fácil criar primeiro uma variável do tipo 'string' para depois você converter para inteiro. Em alguns casos , pode dar esse "erro" de não efetuar a conversão. O certo quando você digita uma letra em um campo totalmente , geraria uma mensagem de exceção na runtime ou no formato de entrada (na tela de comando).

      Excluir
  2. Como fazer para pegar somente os numeros pares com a estrutura for

    ResponderExcluir
    Respostas
    1. if(numero % 2 == 0) {

      for(int i = 0; i <= numero; i++)
      {
      std::cout << "PROXIMO NUMERO PAR É : " << ' ' << i << endl;

      }

      else {
      cout << "FIM" << endl;

      }

      cin.get();
      // neste caso , no 'if' somente aparecerá se o numero colocado for no resto da divisão == 0.


      }

      Excluir