Ho scritto un programma per trovare i fattori primi di un numero.
Quando fornisco un numero elevato (600851475143) come input, viene visualizzato MemoryError
.
Di seguito è riportato il codice:
def fact(a):
factors = []
for i in range(1,a+1):
if a%i == 0:
factors.append(i)
return factors
num = raw_input(">> ")
#600851475143
a = b = []
a = fact(long(num))
for i in range(0,len(a)):
b = fact(a[i])
if len(b) <= 2:
print a[i]
Dalla navigazione sono venuto a sapere che Python utilizza la memoria del computer - RAM. Sto usando Python in Unbuntu senza cambiare la sua configurazione. Devo cambiare anythig per lavorare su un computer a 64 bit. O dovrei usare qualsiasi funzione aggiuntiva (s) per aggirare questo errore