On Wed, Dec 26, 2012 at 12:50 PM, monoBOT <monobot.s...@gmail.com> wrote:
> def prim(n):
> if n == 1:
> return False
> if n == 2 or n == 3:
# if n in (2,3)
# (más corto, y más fácil de expandir).
> return n
> for m in xrange(2, int(n ** 0.5) + 1):
> if n % m:
> if m == int(n ** 0.5):
# Aquí estás calculando la raíz cuadrada del mismo número en cada
iteración, lo que puede ser lento. Puedes definir sqrn = int(n**0.5)
al principio. Si vas a calcular muchas raíces cuadradas, es mejor usar
la función math.sqrt, pero para esto es mejor dejarlo así.
> return n
> else:
> return False
>
>
> def fprimos(n1, n2):
> l = []
> for num in range(n1, n2 + 1):
# Si estás usando Python 2.x, es mejor usar un xrange, ya que no estás
usando la lista. En Python 3.x, el range es como el xrange de 2.
# La diferencia (Py2.x) es que range genera y guarda en memoria una
lista con todos los elementos, mientras que xrange te va devolviendo
el siguiente número, sin almacenarlos todos, ya que no los necesitas.
> if prim(num):
> l.append(num)
> return l
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/