Foros del Web » Programando para Internet » Python »

Python y mcd

Estas en el tema de Python y mcd en el foro de Python en Foros del Web. Partiendo de este ejemplo. http://www.subeimagenes.com/img/129-130-4950.gif @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original num = int ( raw_input ( 'Agrega un número: ' ) )   creo_que_es_primo ...
  #1 (permalink)  
Antiguo 20/10/2010, 02:06
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Python y mcd

Partiendo de este ejemplo.

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

Código Python:
Ver original
  1. num = int(raw_input('Agrega un número: '))
  2.  
  3. creo_que_es_primo = True
  4. divisor = 2
  5. while divisor < num and creo_que_es_primo:
  6.     if num % divisor == 0:
  7.         creo_que_es_primo = False
  8.     divisor += 1
  9.  
  10. if creo_que_es_primo:
  11.     print 'El número', num, 'es primo'
  12. else:
  13.     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?
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #2 (permalink)  
Antiguo 20/10/2010, 02:37
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Python y mcd

Código Python:
Ver original
  1. num = int(raw_input('Agrega un número: '))
  2. num_2 = int(raw_input('Agrega otro número: '))
  3.  
  4. creo_que_es_primo = True
  5. divisor = 2
  6. while divisor < num and creo_que_es_primo:
  7.     if num &#37; divisor == 0:
  8.         creo_que_es_primo = False
  9.     divisor += 1
  10.  
  11.     if creo_que_es_primo:
  12.         print 'El número', num, 'es primo'
  13.     else:
  14.         print 'El número', num, 'no es primo'
  15.  
  16. creo_que_es_primo_2 = True
  17. divisor_2 = 1
  18. while divisor_2 < num_2 and creo_que_es_primo_2:
  19.     if num_2 % divisor_2 == 0:
  20.         creo_que_es_primo_2 = False
  21.     divisor_2 += 1
  22.  
  23.     if creo_que_es_primo_2:
  24.         print 'El número', num_2, 'es primo'
  25.     else:
  26.         print 'El número', num_2, 'no es primo'
  27.  
  28. # Como dice que los divida, me imagino que se refiere a esto.
  29. n = num / num_2
  30. 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%A1...C3%BAn_divisor

Saludo.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Última edición por REHome; 20/10/2010 a las 03:10
  #3 (permalink)  
Antiguo 20/10/2010, 08:12
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Python y mcd

Checa aquí (Algoritmo de euclides)

Edito: Simplemente haría un:
Código Python:
Ver original
  1. from fractions import gcd
  2. a = int(raw_input("Numero 1: "))
  3. b = int(raw_input("Numero 2: "))
  4. print gcd(a, b)

Última edición por razpeitia; 20/10/2010 a las 22:48
  #4 (permalink)  
Antiguo 20/10/2010, 22:45
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Python y mcd

Me da este error, cosa rara.

Código Python:
Ver original
  1. File "/home/klm/NetBeansProjects/klm/src/klm.py", line 45
  2.     b = int(raw_input("Numero 2: ")
  3.     ^
  4. SyntaxError: invalid syntax
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #5 (permalink)  
Antiguo 20/10/2010, 22:48
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Python y mcd

te falta un paréntesis ¬¬
  #6 (permalink)  
Antiguo 20/10/2010, 22:52
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Python y mcd

Ahora funciona, si pongo 20 y luego 10, como resultado es 10.

Con este código es al revés. Es igual pero como resultado da 20. Algo no cuadra.
Código Python:
Ver original
  1. Num1 = 20
  2. Num2 = 10
  3. Aux1 = Num1
  4. Aux2 = Num2
  5. Rest = 1
  6. mcd = 1
  7. mcm = 1
  8.  
  9. while Aux2 != 0:
  10.  Rest = Aux1 &#37; Aux2
  11.  Aux1 = Aux2
  12.  Aux2 = Rest
  13.  
  14.  mcd = Aux1
  15.  mcm = Num1 * Num2 / mcd
  16.  
  17. print mcm
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #7 (permalink)  
Antiguo 20/10/2010, 23:06
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Python y mcd

Por que no intentas con un:
Código Python:
Ver original
  1. print mcd
  #8 (permalink)  
Antiguo 20/10/2010, 23:28
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Python y mcd

Código:
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

a = int(raw_input("Number 1: "))
b = int(raw_input("Number 2: "))
c = int(raw_input("Number 3: "))
print gcd(a, b)
print gcd(a, gcd(b, c))
  #9 (permalink)  
Antiguo 21/10/2010, 12:43
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Python y mcd

Cita:
Iniciado por REHome Ver Mensaje
Ahora funciona, si pongo 20 y luego 10, como resultado es 10.

Con este código es al revés. Es igual pero como resultado da 20. Algo no cuadra.
Es que estás imprimiendo el mcm, no el mcd
Además estás calculando el mcd y el mcm en cada iteración del while, porque los sangraste al mismo nivel.
Inmediatamente arriba tenés el mismo algoritmo, hecho más corto.


Saludos.

Etiquetas: mcd
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:07.