View Single Post
Old 16-09-2014, 16:00   #8
ingframin
Senior Member
 
L'Avatar di ingframin
 
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
In python è così, se mi dai qualche minuto provo a farlo anche in Java.
Stiamo parlando di circa 9000 numeri eh...
Il tuo problema con la memoria è che cerchi di generare prima tutti i numeri e poi applicare il crivello, mai n pratica basta applicare il crivello dinamicamente

Codice:
def eratostene(n):
    buffer = []
    flag = False
    for x in range(2,n):
        flag = False
        if x*x > n:
            break
        for y in buffer:
            if x%y == 0:
                flag = True
                break
        if not flag:
            buffer.append(x)
        
            
    return buffer

print(eratostene(8000000000))

a = input()
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!

Ultima modifica di ingframin : 16-09-2014 alle 16:57.
ingframin è offline   Rispondi citando il messaggio o parte di esso