jueves, 30 de agosto de 2012

Criptografía factorización

Esta entrada es de un ejercicio visto en clase, donde lo buscado era hacer la comunicación entre bob y alice, en el que bob mandaba una número generado por la multiplicación de una lista de números dados, así que alice tendría que encontrar cuales era la lista.

Así que bob, mandaría 1594323 (con la lista 131*3*11*5*101*17) y alice buscaría encontrar esa lista.

¿Como alice encontraría la lista?
La respuesta es sencilla lo que hay que hacer es factorizar el número y tendremos la lista hecha por bob

Código:
Para eso generé un código que te factorice el número, aún falta optimizarlo un poco, pero te da la lista.

def factorM(num):
    b = list()
    for i in range(1, 100000): #Determinamos un alcance
        a = num % i  #Sacamos el modulo de i al numero, para saber si es 0 que es lo que buscamos
        if a == 0:
            num = num / i #Actualizamos el numero dividiendolo por el valor de i, para ir sacando los demas numero de lo contrario la lista creceria
            b.append(i)
    return b

a = float(raw_input("Dame el numero: "))
b = factorM(a)
print b

Resultado:

Así que listo, ya tenemos la lista de bob.

No hay comentarios:

Publicar un comentario