Baixar a apostila C++ Progressivo |
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; }
Bom dia!
ResponderExcluirGostei 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.
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).
ExcluirComo fazer para pegar somente os numeros pares com a estrutura for
ResponderExcluirif(numero % 2 == 0) {
Excluirfor(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.
}