Hace tiempo que no uso C y se me ha olvidado casi todo lo que se...pero en el procedimiento que empleas me parece que lo que haces es mirar uno a uno los números naturales y comprobar si son de Hamming con las divisiones sucesivas...esto es lo que te aconseja el enunciado...
¿Y no sería más fácil aplicar la fórmula directamente? Sólo habría que multiplicar por 2, 3 y 5.
1
1*2 = 2 (el número anterior por 2)
1*2*3 = 2*3 = 6 (el número anterior por 3)
1*2*3*5 = 6*5 = 30 (el número anterior por 5)
1*2*3*5*2 = 30*2 = 60 (el número anterior por 2)
1*2*3*5*2*3 = 60*3 = 180 (el número anterior por 3)
1*2*3*5*2*3*5 = 180*5 = 900 (el número anterior por 5)
...
No se si me explico...
A la hora de programarlo pintaríamos en pantalla el 1 directamente y luego haríamos un for para los productos hasta llegar a 99 (el 1, junto con los 99 del while nos dan los 100 números pedidos).
Y dentro del for, usamos unos if para ir cambiando el número por el que multiplicamos: primero por el 2 y multiplicamos, luego si esa variable vale dos la cambiamos por 3 y muliplicamos y si la variable vale 5 la cambiamos por 2 y multiplicamos. También se podría hacer con un case en lugar del if.
Última edición por kolmo7; 17/12/2005 a las 02:44.
|