Desde já muito obrigado,
Acho que já consegui resolver o problema...
Inseri um try lá no meio para quando ele dar o erro imprimir o x e continuar e assim já não pára nem vai ocupando a memória. Contudo ele continua muito lento...
O que pretendo fazer exactamente é chegar a um número que tenha n divisores consecutivos de 1 até n neste caso 20. Ou seja, o meu objectivo é encontrar um numero que tenha como primeiros vinte divisores os numeros de 1 a20 (1,2,3,4,5,6,7,8,9,10,11,...,20) Mas ele demora tanto tempo a correr que não sei se lá chegarei vivo

.
O código que utilizei foi o seguinte:
- Código: Seleccionar Todos
def tabuada(a):
divisores = range(1,a+1)
m=0
x = 29551635
while m != a:
m = 0
try:
fob = open("F:\Filipe\Documentos\Física\Phyton\divisas.txt","w")
fob.write("%i" % x)
fob.close()
except:
print x
for h in divisores:
if x % h == 0:
m = m+1
x = x+1
print "O numero é %i" %x
print m
a= input()
tabuada(a)
A variavel a indica o numero de divisores que quero, quando corro o programa ponho 20 visto ser esse o meu objectivo.
A variável x indica o número em que ele começa a testar... Como eu já desliguei o computador muitas vezes, desligou-se sozinho, ou ocupava a memória toda, eu sempre que o corro altero o x para o número que está no documento divisas.txt