determinar si un numero es perfecto, error de sobrecarga
Publicado por jhon mclaurin (12 intervenciones) el 19/11/2012 05:01:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
n=input('ingrese un numero ')
sumatorio=0
lista=[]
for i in range(1,n):
if n%i==0:
sumatorio=sumatorio+i
lista.append(i)
if sumatorio==n:
print n,'es un numero perfecto y sus divisores propios son los numeros que estan en la siguiente lista: ',lista
else:
print 'no es perfecto'
El anterior codigo verifica si un numero es perfecto y entrega una lista con sus divisores propios. Mi duda es que no le puedo ingresar un numero muy grande ya que python me da error de sobrecarga, este es el mensaje al ponerle un numero grande:
1
2
3
4
5
ingrese un numero 9999999999999999999
Traceback (most recent call last):
File "perfecto.py", line 2, in <module>
for j in xrange(1,n):
OverflowError: long int too large to convert to int
que modificacion (sencilla ojala, ya que he visto en la web que lo arreglan haciendo una clase para range etc) puedo hacerle a mi programa para que lea cualquier numero entero grande? Desde ya gracias.
Valora esta pregunta


0