Este algoritmo lo que hace es calcular un numero primo con minimo 20 cifras, se que funciona bien con numeros pequeños pero cuando intento 20 cifras me salta memory error
Cualquier ayuda es apreciada.
Código (python) [Seleccionar]
#!/usr/bin/env python
from math import sqrt
# Busqueda de primos (true->primo || false->compuesto)
def primo (numero):
lista_p = []
max = int(sqrt(numero))
# creo la lista de primos
for i in range(2,max):
if(primo_aux(i,lista_p)):
lista_p.append(i)
return primo_aux(numero, lista_p)
# Busqueda con division entre los primos en (2, sqrt(n)) (Auxiliar)
def primo_aux (numero, primos_m):
for i in primos_m:
if ((numero%i) == 0):
return False # no es primo por division exacta entre un primo
return True
def main():
n = long(10000000000000000000) #Numero de 20 cifras
while True:
print "Entra"
if(primo(n)):
break;
n += 1
print "Primo encontrado: %n", n
if __name__ == "__main__":
main()
Cualquier ayuda es apreciada.