Foros del Web » Programando para Internet » Python »

Numeros divisibles y factoriales

Estas en el tema de Numeros divisibles y factoriales en el foro de Python en Foros del Web. a ver si me podeis ayudar con 2 problemas de python que tengo, os copio los enunciados y lo que e echo yo: Escribe una ...
  #1 (permalink)  
Antiguo 30/09/2011, 12:09
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
Numeros divisibles y factoriales

a ver si me podeis ayudar con 2 problemas de python que tengo, os copio los enunciados y lo que e echo yo:

Escribe una función fatmenor, que imprima todos los valores menores que 6204484017332394393600000 y que son factoriales de algún numero natural

Código:
# fatmenor.py

def fatmenor():
    
    fact = 1
    for factor in range (factor):
        fact = (fact * factor)

        if(fact<620448401732394393600000):

            print "Factorial: ", fact        

fatmenor()
Escribe una función, divisible, que calcule cual es el numero natural mas pequeño que es divisible por 2,3,4,5,6,7,8,9 y 10

Código:
#divisible

def divisible():

    for numero in range(10):
        for d in range(10):
            d = numero%d != 0

divisible()
Estoy atascados con ellos, supongo que son fáciles de implementar, pero estoy empezando con python

Gracias!!!


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 30/09/2011, 18:36
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: Numeros divisibles y factoriales

El primer ejercicio sale mas fácil con un while, pero básicamente esta mal por 2 cosas.
1.- Utilizas factor y nunca le haz asignado un valor antes antes.
2.- range empieza en 0

El segundo programa es muy simple si conoces el mínimo común múltiplo y el máximo común divisor.

Nota el numero es 2520.
  #3 (permalink)  
Antiguo 01/10/2011, 08:33
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
Respuesta: Numeros divisibles y factoriales

Ok, modifique el codigo del primero:

Código:
# fatmenor.py

def factorial(x):
    if x == 0:
        return 1
    else:
        return x * factorial(x - 1)

factorial(x)

def fatmenor():
    
    fact = 1
    while fact<620448401732394393600000:
        factor = factorial(fact)
        print "Factorial: ", factor
        fact = fact + 1
        
fatmenor()
Pero me dice invalid syntax y me marca la ultima comilla, no se porque el código esta bien escrito

En el segundo ejercicio, me pasa lo mismo, y me marca el rang:

Código:
#divisible

def divisible():

    n = 1
    for n rang(10):
        n = n + 1
        numero = 1
        c = numero%n
        while c != 0:
            numero = numero + 1
            print "Numero divisible", c

divisible()
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332

Última edición por bichomen; 01/10/2011 a las 09:00
  #4 (permalink)  
Antiguo 01/10/2011, 12:19
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: Numeros divisibles y factoriales

En tu programa 1, sigues sin tener idea de lo que estas haciendo. Eso por que haz copiado y pegado código para generar los factoriales. Ademas de que estas haciendo llamada a una función con el parámetro x y x nunca lo defines. No estas haciendo la comparación correcta en el while. Realmente este programa no está difícil pero necesitas aprender la sintaxis, leer tu código cuando lo escribes y sobre todo usar sentido común.

En el programa 2, ni siquiera tiene la sintaxis correcta. En tu primer mensaje si escribiste bien la sintaxis del for pero ahora ni siquiera eso.

Creo que vas a tener que practicar primero la sintaxis básica, saber lo que esta haciendo tu programa y ahora si ponerte a resolver tus problemas de tarea. Si haces esto bien te llevara mas o menos 1 o 2 días completos. (días de 8 horas)

Etiquetas: numeros
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 16:44.