Как вы визуализируете огромное целое число в Python? - PullRequest
0 голосов
/ 24 октября 2018

Итак, ради интереса, я хотел увидеть самое большое простое число, которое мы обнаружили, своими собственными глазами (2 ^ 277,232,917 - 1 согласно это ), которое представляет собой число 23,249,425 цифр.О, парень.Поэтому я начал с ручного вычисления числа в Python: 2**277232917-1, которое дало бы мне ответ ... в конце концов ... когда-нибудь.Прождав полчаса, пока одно из моих ядер работало все время, я начал искать более быстрое решение для решения показателей.Я нашел этот драгоценный камень в Википедии, известный как

Вычисление по квадратам

def exp_by_squaring(x, n):
    if n<0:
        return exp_by_squaring(1 / x, -n)
    elif x==0:
        return 1
    elif x==1:
        return x
    elif n%2==0:
        return exp_by_squaring(x * x,  n / 2)
    elif not n%2==0:
        return x * exp_by_squaring(x * x, (n - 1) / 2)

После подключения его к консоли python3 и ввода t=exp_by_squaring(2, 277232917)-1и жду .. о, подождите, это сделано!Я люблю эту концепцию.Теперь с этим номером я могу print(str(t)), и он снова замерз.Предположим, я могу разрешить запись в файл за ночь f=open("LargestPrime", "w") f.write(str(t)) f.close().На следующее утро с одним текстовым файлом 23,2 МБ , пытаясь открыть его, он просто зависает и снова душит ядро.Я думаю, это слишком много, чтобы даже показать.

Как бы вы этого достигли?Не могли бы вы разбить int на отдельные части, а затем преобразовать их в строки, чтобы записать их в отдельные файлы?Сохраню ли я его в другом формате?Как я могу сократить время, необходимое для преобразования этой цифры 23M + int в строку?Как я мог практически отобразить такое большое число?Я что-то здесь упускаю?

...