elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema de Memory Error Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema de Memory Error Python  (Leído 2,270 veces)
camaleonh

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Problema de Memory Error Python
« en: 24 Febrero 2012, 00:32 am »

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

Código
  1.  
  2. #!/usr/bin/env python
  3.  
  4. from math import sqrt
  5.  
  6. # Busqueda de primos (true->primo || false->compuesto)
  7. def primo (numero):
  8.    lista_p = []
  9.    max = int(sqrt(numero))
  10.  
  11.    # creo la lista de primos
  12.    for i in range(2,max):
  13.        if(primo_aux(i,lista_p)):
  14.            lista_p.append(i)
  15.  
  16.    return primo_aux(numero, lista_p)
  17.  
  18. # Busqueda con division entre los primos en (2, sqrt(n)) (Auxiliar)
  19. def primo_aux (numero, primos_m):
  20.    for i in primos_m:
  21.        if ((numero%i) == 0):
  22.            return False # no es primo por division exacta entre un primo
  23.    return True
  24.  
  25.  
  26. def main():
  27.  
  28.    n = long(10000000000000000000) #Numero de 20 cifras
  29.  
  30.    while True:
  31.        print "Entra"
  32.        if(primo(n)):
  33.            break;
  34.        n += 1
  35.  
  36.    print "Primo encontrado: %n", n
  37.  
  38. if __name__ == "__main__":
  39.    main()
  40.  

Cualquier ayuda es apreciada.


En línea

camaleonh

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Problema de Memory Error Python
« Respuesta #1 en: 25 Febrero 2012, 00:27 am »

Solucionado, no debo usar range con números tan grandes por que se llena toda la memoria, mejor un ciclo while uno por uno, también se puede optimizar más.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error 7: Out of memory.
Programación Visual Basic
CRAB 3 1,987 Último mensaje 27 Noviembre 2005, 00:44 am
por Slasher-K
Shared Memory Provider, error: 0 - No process is on the other end of the pipe
.NET (C#, VB.NET, ASP)
alexelprogramador 0 5,132 Último mensaje 29 Marzo 2008, 22:13 pm
por alexelprogramador
Que error es este?? Fatal error: Allowed memory size of 8388608 bytes exhausted
PHP
XXXXXX 4 5,631 Último mensaje 19 Diciembre 2008, 00:56 am
por Unnamed
Memory parity error
Hardware
Chero 3 4,924 Último mensaje 18 Noviembre 2010, 02:07 am
por Aprendiz-Oscuro
imagecreatetruecolor faltal error : out of memory
PHP
OssoH 4 3,878 Último mensaje 29 Diciembre 2010, 19:28 pm
por OssoH
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines