elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] - mdc
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Python] - mdc  (Leído 7,574 veces)
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
[Python] - mdc
« en: 20 Octubre 2010, 09:59 am »


Partiendo de este ejemplo.

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

Código
  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?


En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #1 en: 20 Octubre 2010, 10:35 am »

Hice algo de esto pero no se si tiene que ver.

Código
  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 % 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%A1ximo_com%C3%BAn_divisor

Saludo.


« Última modificación: 20 Octubre 2010, 11:09 am por Meta » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #2 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
  1.  var Num1 = 20;
  2.  var Num2 = 10;
  3.  var Aux1 = Num1;
  4.  var Aux2 = Num2;
  5.  var Rest = 1;
  6.  var mcd = 1;
  7.  var mcm = 1;
  8.  
  9.  while (Aux2 != 0) {
  10.    Rest = Aux1 % Aux2;
  11.    Aux1 = Aux2;
  12.    Aux2 = Rest;
  13.  }
  14.  
  15.  mcd = Aux1;
  16.  mcm = Num1 * Num2 / mcd;
  17.  
  18.  document.write("MCM: " + mcm);
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #3 en: 21 Octubre 2010, 03:52 am »

Buenas campeón:

Ahora toca usar los for-in.
Código
  1. Num1 = int(raw_input('Agrega un número: '))
  2. Num2 = int(raw_input('Agrega otro número: '))
  3.  
  4. #Num1 = 20
  5. #Num2 = 10
  6. Aux1 = Num1
  7. Aux2 = Num2
  8. Rest = 1
  9. mcd = 1
  10. mcm = 1
  11.  
  12. while Aux2 != 0
  13.    Rest = Aux1 % Aux2
  14.    Aux1 = Aux2
  15.    Aux2 = Rest
  16.  
  17. mcd = Aux1
  18. mcm = Num1 * Num2 / mcd

Citar
File "/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.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #4 en: 21 Octubre 2010, 04:19 am »

Es que si mal no recuerdo, en el while es así,
Código
  1. Num1 = int(raw_input('Agrega un número: '))
  2. Num2 = int(raw_input('Agrega otro número: '))
  3.  
  4. #Num1 = 20
  5. #Num2 = 10
  6. Aux1 = Num1
  7. Aux2 = Num2
  8. Rest = 1
  9. mcd = 1
  10. mcm = 1
  11.  
  12. while Aux2 != 0:
  13.    Rest = Aux1 % Aux2
  14.    Aux1 = Aux2
  15.    Aux2 = Rest
  16.  
  17. mcd = Aux1
  18. mcm = Num1 * Num2 / mcd
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #5 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.
« Última modificación: 21 Octubre 2010, 05:49 am por Meta » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #6 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
  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 % Aux2
  11. Aux1 = Aux2
  12. Aux2 = Rest
  13.  
  14. mcd = Aux1
  15. mcm = Num1 * Num2 / mcd
  16.  
  17. print mcm

Resultado,
Código
  1. none@alex-laptop:~/Escritorio$ python PoC.py
  2. 20
« Última modificación: 10 Marzo 2016, 15:52 pm por Killer! » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #7 en: 21 Octubre 2010, 06:53 am »

Código
  1. from fractions import gcd
  2. a = int(raw_input("Numero 1: "))
  3. b = int(raw_input("Numero 2: "))
  4. print gcd(a, b)
  5.  

http://es.wikipedia.org/wiki/Algoritmo_de_Euclides#Implementaci.C3.B3n_en_pseudoc.C3.B3digo
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #8 en: 21 Octubre 2010, 06:59 am »

Si estáis aprendiendo, lo correcto sería hacedlo manualmente.  :P
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: [Python] - mdc
« Respuesta #9 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.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines