Willyfrog

Calculo de numeros primos

En un problema que resolvi recientemente en el proyecto euler, descubrí un algoritmo sencillo para calcular numeros primos: la criba de eratóstenes El cual inicialmente traduje a python como:

1 def eratostenes(m):
2     primos = set(range(2,m+1))
3     for i in xrange(2,int(sqrt(m))+1):
4         if i in primos:
5             for j in xrange(2,m/i+1):
6                 primos.discard(i*j)
7 
8     return primos

No comento el código por continue.

El arbol de navidad de QBert

En el weekly python newsletter, enlazaban al problema de sacar la suma máxima, dado un árbol y utilizando el movimiento del clásico videojuego qBert (no del todo cierto porque qBert sí podía subir, pero eso son tecnicismos). El árbol en concreto sería así:

chrismasTree =   [
                [75],
               [95,64],
             [17,47,82],
            [18,35,87,10],
 
continue.

De dict a sql where

he decidido mejorar un poco el codigo de una de las funciones heredadas de alguien que ni siquiera conozco (por suerte) y he decidido convertirlo de

buf.write(" WHERE 1=1 ")
for col in to.pk:
    buf.write( " AND " )
    buf.write( col )
    buf.write( " = %s" )
    par.append( getattr( obj, to.map[ col ] ) )

a esto otro

buf.write("WHERE %s" % " AND ".join(["%s = %s" % (col,getattr(obj,to.map[col])) for col in to.pk])