Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Meta en 20 Octubre 2010, 09:59 AM

Título: [Python] - mdc
Publicado por: Meta en 20 Octubre 2010, 09:59 AM

Partiendo de este ejemplo.

http://www.subeimagenes.com/img/129-130-4950.gif

Código (python) [Seleccionar]
num = int(raw_input('Agrega un número: '))

creo_que_es_primo = True
divisor = 2
while divisor < num and creo_que_es_primo:
   if num % divisor == 0:
       creo_que_es_primo = False
   divisor += 1

if creo_que_es_primo:
   print 'El número', num, 'es primo'
else:
   print 'El número', num, 'no es primo'


Hablando del ejercicio 129, por lo que entiendo, parece que hay que hacer cálculos de dos números enteros y luego dividirlo. El primero está así como indica arriba. ¿Cómo hago el otro en el mismo programa?
Título: Re: [Python] - mdc
Publicado por: Meta en 20 Octubre 2010, 10:35 AM
Hice algo de esto pero no se si tiene que ver.

Código (python) [Seleccionar]
num = int(raw_input('Agrega un número: '))
num_2 = int(raw_input('Agrega otro número: '))

creo_que_es_primo = True
divisor = 2
while divisor < num and creo_que_es_primo:
   if num % divisor == 0:
       creo_que_es_primo = False
   divisor += 1

   if creo_que_es_primo:
       print 'El número', num, 'es primo'
   else:
       print 'El número', num, 'no es primo'

creo_que_es_primo_2 = True
divisor_2 = 1
while divisor_2 < num_2 and creo_que_es_primo_2:
   if num_2 % divisor_2 == 0:
       creo_que_es_primo_2 = False
   divisor_2 += 1

   if creo_que_es_primo_2:
       print 'El número', num_2, 'es primo'
   else:
       print 'El número', num_2, 'no es primo'

# Como dice que los divida, me imagino que se refiere a esto.
n = num / num_2
print n



Estamos tratando del ejercicio sólo por ahora el 129.

Aquí hay algo que no se si realmente viene al cuento.
http://es.wikipedia.org/wiki/M%C3%A1ximo_com%C3%BAn_divisor

Saludo.
Título: Re: [Python] - mdc
Publicado por: Shell Root en 20 Octubre 2010, 16:36 PM
Como estoy en la universidad no tengo python. Así que javascript es la mejor opción,
Código (javascript) [Seleccionar]
 var Num1 = 20;
 var Num2 = 10;
 var Aux1 = Num1;
 var Aux2 = Num2;
 var Rest = 1;
 var mcd = 1;
 var mcm = 1;

 while (Aux2 != 0) {
   Rest = Aux1 % Aux2;
   Aux1 = Aux2;
   Aux2 = Rest;
 }

 mcd = Aux1;
 mcm = Num1 * Num2 / mcd;

 document.write("MCM: " + mcm);
Título: Re: [Python] - mdc
Publicado por: Meta en 21 Octubre 2010, 03:52 AM
Buenas campeón:

Ahora toca usar los for-in.
Código (python) [Seleccionar]
Num1 = int(raw_input('Agrega un número: '))
Num2 = int(raw_input('Agrega otro número: '))

#Num1 = 20
#Num2 = 10
Aux1 = Num1
Aux2 = Num2
Rest = 1
mcd = 1
mcm = 1

while Aux2 != 0
    Rest = Aux1 % Aux2
    Aux1 = Aux2
    Aux2 = Rest

mcd = Aux1
mcm = Num1 * Num2 / mcd


CitarFile "/home/user/NetBeansProjects/kami/src/kami.py", line 31
    while Aux2 != 0
                  ^
SyntaxError: invalid syntax

De todas maneras hay que usar el for-in si es posible.

Saludo.
Título: Re: [Python] - mdc
Publicado por: Shell Root en 21 Octubre 2010, 04:19 AM
Es que si mal no recuerdo, en el while es así,
Código (python,12) [Seleccionar]
Num1 = int(raw_input('Agrega un número: '))
Num2 = int(raw_input('Agrega otro número: '))

#Num1 = 20
#Num2 = 10
Aux1 = Num1
Aux2 = Num2
Rest = 1
mcd = 1
mcm = 1

while Aux2 != 0:
    Rest = Aux1 % Aux2
    Aux1 = Aux2
    Aux2 = Rest

mcd = Aux1
mcm = Num1 * Num2 / mcd
Título: Re: [Python] - mdc
Publicado por: Meta en 21 Octubre 2010, 05:46 AM
En teoría es así y no se deja. Mejor usar un for in ya que es el que se usa en estos ejercicios. Bueno, si quieres hacerlo funcionar con While, lo haremos, pero a mi no me sale y me  da error. Por algo será. Seguiré investigando porqué da ese error.
Título: Re: [Python] - mdc
Publicado por: Shell Root en 21 Octubre 2010, 05:56 AM
Bueno, no se que es lo que no te rueda. A mi me funciona correctamente, así,
Código (python) [Seleccionar]
Num1 = 20
Num2 = 10
Aux1 = Num1
Aux2 = Num2
Rest = 1
mcd = 1
mcm = 1

while Aux2 != 0:
Rest = Aux1 % Aux2
Aux1 = Aux2
Aux2 = Rest

mcd = Aux1
mcm = Num1 * Num2 / mcd

print mcm


Resultado,
Código (PoC) [Seleccionar]
none@alex-laptop:~/Escritorio$ python PoC.py
20
Título: Re: [Python] - mdc
Publicado por: Meta en 21 Octubre 2010, 06:53 AM
Código (python) [Seleccionar]
from fractions import gcd
a = int(raw_input("Numero 1: "))
b = int(raw_input("Numero 2: "))
print gcd(a, b)


http://es.wikipedia.org/wiki/Algoritmo_de_Euclides#Implementaci.C3.B3n_en_pseudoc.C3.B3digo
Título: Re: [Python] - mdc
Publicado por: Shell Root en 21 Octubre 2010, 06:59 AM
Si estáis aprendiendo, lo correcto sería hacedlo manualmente.  :P
Título: Re: [Python] - mdc
Publicado por: Meta en 21 Octubre 2010, 07:42 AM
Si. En este caso es para los visitantes, no para mi. Guardo los ejercicios porque debo leer otra vez el PDF y así espero tener más soltura.
Título: Re: [Python] - mdc
Publicado por: Meta en 21 Octubre 2010, 08:58 AM
Ahora toca el ejercicio 130)

Siguiendo la lógica que esta vez es  como pide aquí he hecho esto.

Ver ejercicio 130). (http://www.subeimagenes.com/img/129-130-4950.gif)

Código (python) [Seleccionar]
Num1 = int(raw_input('Agrega un número: '))
Num2 = int(raw_input('Agrega otro número: '))
Num3 = int(raw_input('Agrega el tercer número: '))

#Num1 = 20
#Num2 = 10
Aux1 = Num1
Aux2 = Num2
Aux3 = Num3
Rest = 1
mcd = 1
mcm = 1

while Aux3 != 0:
Rest_1 = Aux1 % Aux2
Rest_2 = Aux2 % Aux3
Aux2 = Aux3
Aux1 = Aux2
Aux3 = Rest

mcd = Aux1
mcm = Num1 * Num2 * Num3 / mcd

print mcm


No hace nada.
Título: Re: [Python] - mdc
Publicado por: Shell Root en 21 Octubre 2010, 14:22 PM
Cof, cof... Estais usando logica o solo interpretación del ejercicio anterior?.

Ando de nuevo en la Universidad, en la noche veré que puedo hacer directamente en PYTHON.
Título: Re: [Python] - mdc
Publicado por: Meta en 21 Octubre 2010, 14:44 PM
Las dos cosas.
Título: Re: [Python] - mdc
Publicado por: Meta en 22 Octubre 2010, 06:41 AM
Cuando pueda me avisas aunque lo hagas con Java. Por ahora estoy adelantando los ejercicios nuevo.
Título: Re: [Python] - mdc
Publicado por: Meta en 25 Octubre 2010, 18:14 PM
¿al final hay solución?
Título: Re: [Python] - mdc
Publicado por: Shell Root en 26 Octubre 2010, 00:20 AM
Emmm que tienes?