tengo que hacer un programa en c++ que muestre los numeros del 1 al 10 y diga si es impar y si es multiplo de 5 o de 3 ..
por ejemplo:
1. impar
2. ------
3.impar y multiplo de 3
4.-------
5.impar y multiplo de 5
¡Hola!
Para esto lo único que necesitas es el operador módulo (%), que te da el resto de una división. Un número es impar si el resto de dividirlo entre 2 no es 0, y es múltiplo de 3 (o de 5) si el resto de dividirlo entre ese número es exactamente 0:
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
cout << i << ". ";
bool escribioAlgo = false;
if (i % 2 != 0) {
cout << "impar";
escribioAlgo = true;
}
if (i % 3 == 0) {
cout << (escribioAlgo ? " y multiplo de 3" : "multiplo de 3");
escribioAlgo = true;
}
if (i % 5 == 0) {
cout << (escribioAlgo ? " y multiplo de 5" : "multiplo de 5");
escribioAlgo = true;
}
if (!escribioAlgo) {
cout << "------";
}
cout << endl;
}
return 0;
}
La variable escribioAlgo es solo para decidir si hace falta el « y » antes del segundo texto (por ejemplo en el 3, que es impar y múltiplo de 3 a la vez) o si hay que mostrar el «------» cuando el número no es impar ni múltiplo de nada de eso, como el 2, el 4, el 6, el 8 o el 10.
Prueba a cambiar los números 3 y 5 por otros para ver cómo cambia la salida, es una buena forma de comprobar que entiendes bien lo que hace cada if.
Un saludo,
Antonia G.
