Я решаю головоломку, в которой мне нужно иметь дело с числами порядка 10 ^ 18. Однако я считаю, что python не может обрабатывать очень большие числа во всех областях.
Чтобы быть конкретным, если мы присваиваем a = 1000000000000000000 (10 ^ 18) и выполняем основные арифметические вычисления (+, -, /, *), он отвечает. Однако он показывает OverflowError, когда я использую его в range ()
>>> a = 1000000000000000000
>>> a/2
500000000000000000L
>>> a*2
2000000000000000000L
>>> a+a
2000000000000000000L
>>> a*a
1000000000000000000000000000000000000L
>>> range(a)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
range(a)
OverflowError: range() result has too many items
>>> xrange(a)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
xrange(a)
OverflowError: Python int too large to convert to C long
. Я использовал Python 2.7.
Я хотел бы сделать это в python 2.7, используя встроенные функции. Разве это невозможно?