El comando LLCM
- Inicie sesión o regístrese para enviar comentarios
Hola mis estimados Amigos AdictosHP:
Tanto tiempo de no ingresar en el foro!!!!!
Qué alegría saber que todavía sigue en pie!!!!
Ojalá volvamos a encontrarnos con todos los viejos y experimentados Amigos AdictosHP y también con los nuevos...
Bueno, basta de palabras... ahora les presento un nuevo desafío porque me parece que este importante foro de Minicampeonatos debe volver a reactivarse...
El desafío es el siguiente:
Realizar en código UserRPL el programa más rápido y más pequeño que permita calcular el Mínimo Común Múltiplo (MCM) de cualquier conjunto de números enteros.
O sea que el programa debe recibir como argumento en la pila una lista con los números enteros a calcular el MCM y al aplicarlo debe obtener el MCM.
IMPORTANTE: En el código UserRPL se pueden emplear cualquier comando UserRPL de la calculadora menos el LCM.
Pila antes de ejecutar el comando LLCM:
2:
1: {4 6 9}
Pila después de aplicar el comando LLCM
2:
1: 36
Listo mis queridos Amigos AdictosHP... ahora a pensar...
Un gran abrazo a todos y espero sus ingeniosas contribuciones!!!
- Inicie sesión o regístrese para enviar comentarios
Otros temas de interes
Bueno previo un cordial saludo.
Aqui esta mi codigo seguire mejorando.
«
SORT DUP DUP SIZE
SWAP REVLIST HEAD
1 -> LISTA TAMAÑO MCM N
«
DO
MCM
LISTA N GET
MOD
IF 0 == THEN
MCM 'MCM' STO
ELSE
MCM
LISTA N GET
DUP2
* UNROT GCD /
'MCM' STO
END
N 1 + 'N' STO
UNTIL
N TAMAÑO ==
END
MCM
»
»Seguiré mejorando el codigo.
- Inicie sesión o regístrese para enviar comentarios
Sin usar LCM, para la serie 49:
<< LIST-> 2 SWAP START DUP2 GCD / * NEXT>>
El crédito es de Werner Huysegoms.
- Inicie sesión o regístrese para enviar comentarios
Hola inspirado en el post anterior:
« « DUP2 GCD / * » STREAM »
- Inicie sesión o regístrese para enviar comentarios
Hola mis estimados Amigos AdictosHP, que tal...
Estuve elaborando mi primera solución para el comando LLCM, que
calcula el Mínimo Común Múltiplo (LCM) de una lista de números
enteros sin utilizar los comandos LCM ni GCD.
El código en UserRPL es el que detallo a continuación:
<<
<< 2 ->LIST FACTORS XQ 1
<< 2
<< NSUB 2 MOD 0 ≠
IF
THEN 2 ->LIST
ELSE DROP2
END
>> DOSUBS EVAL
>> DOSUBS DUP SIZE {} DUP ->
F T B E
<< 1 T
FOR I F I GET B OVER HEAD
POS DUPDUP 0 ==
IF
THEN DROP2 EVAL B ROT +
E ROT + 'E' STO 'B' STO
ELSE E SWAP GET ROT 2
GET DUP {} + UNROT <
IF
THEN E UNROT REPL 'E'
STO
ELSE DROP2
END
END
NEXT B E ^ DUP SIZE 1 >
IF
THEN πLIST
ELSE EVAL
END
>>
>> STREAM
>>
----------------------------------------
Pila antes de ejecutar el Comando LLCM
----------------------------------------
2:
1: {44 60 125}
----------------------------------------
Pila después de ejecutar el Comando LLCM
----------------------------------------
2:
1: 16500
----------------------------------------
Datos del Comando LLCM
----------------------------------------
Tamaño: 392 bytes
Tiempo: 6,9 seg
Calculadora: HP 49G
- Inicie sesión o regístrese para enviar comentarios
A mi tambien me paresia que usar el comando GCD, no era parte de la idea del desafio, esta es mi nueva propuesta:
« SORT « DUP2 WHILE OVER MOD DUP REPEAT SWAP END DROP / * » STREAM »
Y ademas me parece que se deberia convenir una misma lista con la cual podamos probar los programas.
- Inicie sesión o regístrese para enviar comentarios
Aqui mi codigo.
« LIST-> 2 SWAP START DUP2 2 ->LIST LGCD NIP / * NEXT »
Ojo no utilizo el GCD sino el LGCD.
- Inicie sesión o regístrese para enviar comentarios
Excelente solución Amigo LuisBeas...
FELICITACIONES!!!!
Insuperable de verdad...
Saludos a todos mis estimados Amigos AdictosHP!!!!
Ganador indiscutido en este nuevo desafío el Amigo LuisBeas.
- Inicie sesión o regístrese para enviar comentarios
Gracias
desde que conosco este foro lo que mas me atrajo fue siempre esto de los desafios, por fin gane uno
, bueno por el momento, chau y suerte a todos
- Inicie sesión o regístrese para enviar comentarios
talvez deba aprovecharme de esto y hacer q todos ustedes hagan mis programas asi parte por parte hara mi programa mejor dicho por modulos jeeeeeeeeee
- Inicie sesión o regístrese para enviar comentarios
Y si quisiera poner un minitutorial de como usar DOLIST, DOSUBS y STREAM, donde lo pondria?
- Inicie sesión o regístrese para enviar comentarios
si DOLIST Y STREAM son barbaros comandos para trabajar con listas, el DOSUBS, no lo suelo usar tanto aunque también es potente.
- Inicie sesión o regístrese para enviar comentarios
Y si quisiera poner un minitutorial de como usar DOLIST, DOSUBS y STREAM, donde lo pondria?
Me parece que puede ser en el foro de "Programación HP - UserRPL" ó en "Cursos Online - User Medio", ó "Calculadoras HP - Tutoriales y Soluciones HP49/HP50".
Yo lo pondría en "Programación HP - UserRPL".
A compartir esos conocimientos que parece que sabes bastante
- Inicie sesión o regístrese para enviar comentarios
Hola a todos ya termine el minitutorial de como usar DOLIST, DOSUBS y STREAM 2 preguntas que quisiera hacer, es necesario poner una renuncia?? y la otra me van a dar monedas HP??
- Inicie sesión o regístrese para enviar comentarios
exelente aporte luis precisamente ahora estoy haciendo un programa con listas , seguramente alguno de esos comandos me valla a ser util.
para que sirve el comando STREAM , y por el comando LCM no me funciona probe poniendo {4 5 6} deberia sakar 60 pero me sale error
saludos
- Inicie sesión o regístrese para enviar comentarios

exelente aporte luis precisamente ahora estoy haciendo un programa con listas , seguramente alguno de esos comandos me valla a ser util.para que sirve el comando STREAM , y por el comando LCM no me funciona probe poniendo {4 5 6} deberia sakar 60 pero me sale error
saludos
STREAM toma 2 elementos de una lista por vez y los procesa.
{ 4 5 6 }
Toma primero 4 y 5
Luego 5 y 6
(No ando con la calculadora en estos momentos, pero me imagino un ejemplo simple....):
<< { 4 5 6 }
<< + >>
STREAM
>>
Sería 4 5 + = 9
Luego 5 6 + = 11
El resultado de STREAM en este caso sería { 9 11 }
Si quieres procesar más de 2 elementos por vez debes usar DOSUBS.
Con el programa anterior usando DOSUBS sería:
<< { 4 5 6 } 2
<< + >>
DOSUBS
>>
Espero que esto haya resuelto tu duda.
Saludos.-
- Inicie sesión o regístrese para enviar comentarios
Un saludo a toda la comunidad.
Bueno un manual donde está la sintaxis de esos comandos y más
en español es:
HP49G Guia de Bolsillo.
Descargar.
- Inicie sesión o regístrese para enviar comentarios
Hola a la pregunta que hizo riboflavina, la respuesta de Elias1976 no es completamente cierta, si tuviéramos:
<< { 4 5 6 }
<< + >>
STREAM
>>
seria: 4 5 + = 9
luego: 9 6 + = 15
Es decir primero tomado dos valores y devuelve uno y este resultado lo usa con el siguiente elemento para aplicar el programa otra vez y este nuevo resultado con el siguiente elemento y así sucesivamente, con lo que la respuesta es 15.
Y a yder, el manual que pusiste muy bueno, pero en el minitutorila que he realizado doy una explicación un poco mas extendida, y con algunos datos mas que no aparecen ahí
y tambien buelvo a hacer las dos preguntas:
es necesario poner una renuncia?? y la otra me van a dar monedas HP??
- Inicie sesión o regístrese para enviar comentarios
es necesario poner una renuncia?? y la otra me van a dar monedas HP??
Respecto a las monedas, se está implementando una sección especial para publicar los tutoriales, pero puede publicar el suyo y cuando esta sección se inaugure, se movería su tutorial y automáticamente se le asignan las monedas que me parecen son 10.
- Gaak -
- Inicie sesión o regístrese para enviar comentarios
Hola Gaak, me refiero a esa parte donde se pone que uno no se hace responsable por lo daños que pueda causar, es necesaria esa parte?
- Inicie sesión o regístrese para enviar comentarios
Creo que eso es obvio, ya que nadie me imagino que se haga responsable por algún error o daño que pueda sufrir alguna calculadora de otra persona. No es necesario colocar ese mensaje, pero tampoco está prohibido hacerlo.
- Gaak -
- Inicie sesión o regístrese para enviar comentarios
Bueno entonces lo dejo aquí de una vez y también en mi blog donde iré poniendo sus futuras mejoras
y pido disculpas por todos los errores ortográficos que pueda haber y agradecería sus comentarios y correcciones:
- Inicie sesión o regístrese para enviar comentarios
buen material luis
Dedicado a todos los que usan el pretexto de aprender mas sobre sus calculadora para dejar de hacer sus obligaciones, y que vivan los vicios permitidos
...luis beas
suena como a frase de novela
jajaja q bueno luis creo q he sido el primero descargarlo muy bueno tiene imagenes y ejemplo sencillos de entender
muchas gracias
- Inicie sesión o regístrese para enviar comentarios
Está muy bueno Luis. No es tan "mini" en mi opinión, "mini" sería un tutorial de 2 ó 3 páginas. Te dejo 5 monedas HP
- Inicie sesión o regístrese para enviar comentarios
Muchas gracias por sus comentarios, me dan animos para hacer otro mini tutorial XD, gracias de verdad riboflavina y Dani_
- Inicie sesión o regístrese para enviar comentarios

Hola a la pregunta que hizo riboflavina, la respuesta de Elias1976 no es completamente cierta, si tuviéramos:
<< { 4 5 6 }
<< + >>
STREAM
>>seria: 4 5 + = 9
luego: 9 6 + = 15
Es decir primero tomado dos valores y devuelve uno y este resultado lo usa con el siguiente elemento para aplicar el programa otra vez y este nuevo resultado con el siguiente elemento y así sucesivamente, con lo que la respuesta es 15....
Disculpas por el error, es que ando sin calculadora en estos momentos....
Igual muchas gracias por la aclaracion.-
- Inicie sesión o regístrese para enviar comentarios
Hola Elias1976, tu que eres moderador, puse un minitutorial, y no me dieron monedas hp por esto, y otra cosa para que sirven las monedas hp??
- Inicie sesión o regístrese para enviar comentarios
Ya te las van a dar
Estimo que la implementación de las monedas HP es una manera de medir (a largo plazo) el "prestigio" que tiene un AdictoHP en la comunidad. Es decir, a grandes rasgos, cómo es valorado por los demás miembros de la comunidad. Además por supuesto depende del nivel de actividad que tengas, ya que te dan dos monedas HP por cada post.
Pero responder una pregunta complicada, ganar un mini-campeonato, publicar un tutorial o ayudar a solucionar un problema a un miembro de la comunidad debería ser motivo de que el (los) miembro( s ) beneficiado( s ) por la generosidad del que responde, le done(n) unas buenas monedas HP a este último.
Por lo menos es lo que interpreto.
- Inicie sesión o regístrese para enviar comentarios
Hola Elias1976, tu que eres moderador, puse un minitutorial, y no me dieron monedas hp por esto, y otra cosa para que sirven las monedas hp??
Para levantar el ego!!!
salu2
- Inicie sesión o regístrese para enviar comentarios
Hola Jhusel bueno entonces creo que ya no necesito mas nomnedas
, gracias por la informacion chau y suerte a todos.
- Inicie sesión o regístrese para enviar comentarios





















Excelentes soluciones mis estimados Amigos AdictosHP Dani_ y LuisBeas estás soluciones son insuperables de verdad!!!!
MIS FELICITACIONES!!!!
Son los ganadores en este desafío inicial...
Pero...
Ahora compliquemos un poco más el desafío y aumentemos más las restricciones iniciales.
Esto es, encontrar el comando LLCM sin utilizar los comandos LCM ni GCD.
Saludos cordiales y a seguir pensando...
Orly
"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."