[caracas-pm] Sugerencias sobre uso de arrays y hashes

Ernesto Hernández-Novich emhn at telcel.net.ve
Thu Jun 2 06:31:48 PDT 2005


On Sat, 2005-05-28 at 15:13 -0400, Christian Sánchez wrote:
> Hola,
> revise el script que enviaste y lo probé, ahora bien, no se si quizás
> plantee mal el problema o es que entendi mal el mismo antes de
> plantearlo, pero según lo que yo habia hecho antes, entendia que los
> múltiplos de un número son todos aquellos que al dividirlo entre el el
> residuo (módulo) es igual a 0, es por eso que yo tenia una línea que
> verificaba esto:
> if($num % $i == 0)
> cuando corri tu script, los resultados que generó son distintos a los
> que generaba el que yo hice, por ejemplo puse de número inicial el 100 y
> de final el 110, estos son los resultados:
> con el mio:
> La suma de multiplos para 101 es  102. 
> La suma de multiplos para 102 es  216. 
> La suma de multiplos para 103 es  104. 
> La suma de multiplos para 104 es  210. 
> La suma de multiplos para 105 es  192. 
> La suma de multiplos para 106 es  162. 
> La suma de multiplos para 107 es  108. 
> La suma de multiplos para 108 es  280. 
> La suma de multiplos para 109 es  110. 
> La suma de multiplos para 110 es  216. 
> La suma total de los multiplos es 1917
> El maximo es 280
> El promedio es: 174.272727272727

Pues esos resultados están mal, según tu exposición del problema. Entre
100 y 110 están los números que indicaste.

Entre 100 y 110:
- Sólo 100 es múltiplo de 100.
- Sólo 101 es múltiplo de 101.
- Sólo 102 es múltiplo de 102.
- Etcétera.

Un número entero  M es múltiplo de N, si M = C * N, con C cualquier
número entero, de ahí es obvio que si M = C * N, entonces también es
cierto que M = N + N + ... + N (C veces) que es lo que yo aprovecho.
También es cierto que si M = C * N, entonces M mod N = 0.

Si le damos el rango 2 hasta 10, debes tener:

Múltiplos de 2 en el rango, 2, 4, 6, 8 y 10, por tanto suman 30.
Múltiplos de 3 en el rango, 3, 6 y 9, por tanto suman 18.
Múltiplos de 4 en el rango, 4 y 8, por tanto suman 12.
Múltiplos de 5 en el rango, 5 y 10, por tanto suman 15.
Múltiplos de 6 en el rango, 6, por tanto suman 6.
Lo mismo para 7 (suma 7), 8 (suma 8), 9 (suma 9) y 10 (suma 10).
La suma total es 115 y el promedio es 115 / 6.

¿Será que te mandaron a calcular _divisores_ de un número y tu (o el
profesor) expresaron mal el ejercicio?

> Ahora no se que paso ahi, si quizás tu entendiste mal el problema o
> quizás te falto algo, intente "descifrar" como funcionaba lo que
> escribiste pero la verdad no entendi mucho .. (si, me toca leer más ;))

Lo que tu definiste, yo implanté. Y arriba puse un caso de prueba que lo
demuestra.
-- 
Ernesto Hernández-Novich - On Linux 2.6.11 i686 - Unix: Live free or die!
Geek by nature, Linux by choice, Debian of course.
If you can't apt-get it, it isn't useful or doesn't exist.
GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3



More information about the caracas-pm mailing list