hola!!
estuve viendo tu código y lo probé!! XD yo había echo uno igual para una cursada pero en C! aunque no es muy distinto a tu codigo! =P
fíjate de poner paréntesis a las cuentas! por ahí a veces no interfiere pero aveces como en este caso si cambia el resultado!!
es mi pequeño aporte a tu código! ñ_ñ
Saludos!!! XD