Калькулятор больших чисел

Вычисляйте целые числа за пределами точности с плавающей точкой: арифметика, степени, корни, факториалы, НОД, НОК и простые множители. 100! показывает все 158 цифр точно.

01 калькулятор

Результаты обновляются при вводе. Ctrl/Cmd+Enter копирует основной результат.

Результат

    Показать решение

      Калькулятор больших чисел выполняет точную целочисленную арифметику со значениями, которые обычные калькуляторы с плавающей точкой не удерживают. Сложение, вычитание, умножение, деление, модуль, степени, целочисленные корни, факториалы, НОД, НОК и пробное разложение на простые множители возвращают полные строки цифр, а не научные приближения. Число цифр и необязательные элементы управления точностью сопровождают каждый результат, чтобы размер ответа был виден с первого взгляда.

      Все расчёты выполняются в браузере. Ничего из введённого не отправляется на сервер.

      Вычисления с числами за пределами стандартной точности

      Concept diagram: Входы leads to числа за пределами стандартной точности leads to РезультатВходычисла за пределамистандартной точностиРезультат
      Вычисления с числами за пределами стандартной точности.

      Целые числа произвольной точности растут настолько, насколько позволяет память. Введите операнды как десятичные строки цифр или с префиксами 0x / 0b, когда удобен hex или двоичный ввод, и выберите операцию. Основной вывод это точный результат; вспомогательное поле сообщает, сколько цифр он содержит.

      Стандартные калькуляторы перестают быть точными задолго до того, как это важно для криптографии или комбинаторики. Факториалы, большие степени и произведения многих слагаемых переполняют float IEEE в бесконечность или округляют младшие цифры. Этот инструмент сохраняет каждую цифру для целочисленных результатов, в этом смысл страницы.

      Где стандартные калькуляторы теряют точность

      Concept diagram: Входы leads to где стандартные калькуляторы теряют точность leads to РезультатВходыгде стандартныекалькуляторы теряютточностьРезультат
      Где стандартные калькуляторы теряют точность.

      Double precision IEEE-754 несёт около 15-17 значащих десятичных цифр. Целые выше 2⁵³ (9 007 199 254 740 992) не все могут быть представлены точно в double; после этой точки нечётные целые округляются к ближайшим чётным. Карманные калькуляторы и ячейки таблиц на doubles поэтому тихо врут на больших целых.

      2^53 = 9007199254740992   последнее подряд идущее целое, которое double держит точно
      2^53 + 1                  не отличимо от 2^53 в double

      Умножение и деление с плавающей точкой тоже вносят ошибку округления на дробных результатах. Калькулятор больших чисел избегает этого класса ошибок для целочисленных операций, используя арифметику больших целых. Нецелые корни и деления всё ещё требуют настройки точности, потому что такие результаты по природе не конечные строки цифр.

      Арифметика очень больших целых

      Concept diagram: Входы leads to арифметика очень больших целых leads to РезультатВходыарифметика оченьбольших целыхРезультат
      Арифметика очень больших целых.

      Сложение, вычитание, умножение, деление и модуль принимают операнды из сотен или тысяч цифр. Деление возвращает целое частное; модуль возвращает остаток с обычными соглашениями знака для движка. Умножение двух 100-значных чисел даёт произведение до 200 цифр без научной нотации, скрывающей середину.

      Заём и перенос следуют тем же правилам, что и при ручной арифметике, но по массивам цифр. Производительность остаётся интерактивной для размеров, типичных в домашних заданиях и олимпиадах по программированию; патологические вводы с десятками тысяч цифр могут приостановить вкладку, пока браузер работает. Отмените и повторите с меньшим случаем, если страница перестала отвечать.

      Степени, корни и факториалы

      Concept diagram: Входы leads to степени, корни и факториалы leads to РезультатВходыстепени, корни ифакториалыРезультат
      Степени, корни и факториалы.

      Степени вычисляют base^exponent для неотрицательных целых показателей с точным целочисленным результатом. Целочисленные квадратные корни возвращают пол б истинного корня и могут показать остаток. Факториал n! перемножает каждое целое от 1 до n и возвращает полную строку цифр; для 100! это 158 цифр, далеко за пределами того, что double хранит точно.

      100! имеет 158 цифр. Ведущие цифры 9332621544…, полная строка слишком длинна для записи от руки, поэтому существует калькулятор. Одно число цифр отвечает на многие проверки олимпиад: если задача спрашивает, поместится ли 100! в 256-битный регистр, 158 десятичных цифр уже достаточно для решения (256 бит вмещают не более 78 десятичных цифр).

      nn! (сокращённая форма)Цифр
      103 628 8007
      202 432 902 008 176 640 00019
      50(длинное)65
      100(длинное)158

      Отрицательные факториалы для целых не определены. Очень большие n в конце концов исчерпают память браузера; инструмент сообщает об ошибке, а не возвращает усечённое значение.

      Наибольший общий делитель и наименьшее общее кратное

      Concept diagram: Входы leads to НОД и НОК leads to РезультатВходыНОД и НОКРезультат
      Наибольший общий делитель и наименьшее общее кратное.

      НОД использует алгоритм Евклида: заменяйте большее число остатком от деления, пока остаток не станет нулём. Последний ненулевой остаток и есть НОД. НОК следует из НОК(a, b) = |a × b| / НОД(a, b) с умножением больших целых, чтобы произведение не переполнилось.

      Взаимно простые целые имеют НОД 1. Сокращение дроби или соотношения сторон это деление обоих членов на НОД; Калькулятор соотношения сторон владеет этим UI, а эта страница предоставляет сырые операции НОД и НОК для произвольных целых. Ввод 1920 и 1080 даёт НОД 120, тот же множитель, который сокращает кадр Full HD до 16:9.

      Простые множители большого числа

      Concept diagram: Входы leads to простые множители большого числа leads to РезультатВходыпростые множителибольшого числаРезультат
      Простые множители большого числа.

      Пробное деление снимает малые простые множители, затем продолжает вверх по оставшемуся сомножителю, пока он не станет простым или не достигнут предел поиска. Полупростые числа из двух больших простых это трудный случай: пробное деление не завершится интерактивно в браузере, и страница сообщает этот предел, а не зависает молча.

      ВводМножители
      122² × 3
      9797 (простое)
      1 0017 × 11 × 13

      Калькулятор честно сообщает ограничения. Числа с малыми множителями разлагаются быстро. Числа, построенные как модули RSA, не завершатся за интерактивное время, и это ожидаемо: криптография опирается на эту трудность. Для учебных и олимпиадных задач с умеренными составными числами вида разложения достаточно.

      Точность для неточных результатов

      Concept diagram: Входы leads to точность для неточных результатов leads to РезультатВходыточность для неточныхрезультатовРезультат
      Точность для неточных результатов.

      Квадратные корни неидеальных квадратов и деления, не дающие целых, требуют настройки точности: числа значащих цифр для вычисления перед округлением. Научная нотация доступна для очень больших или малых величин, когда полная строка цифр неудобна.

      Только целочисленные операции игнорируют элемент управления точностью, потому что точный ответ конечен. Смешение режимов частая ошибка: точность 10 не усекает 100!; факториал всё равно возвращает все 158 цифр. Точность применяется только к приближённым операциям.

      Практическое применение больших чисел

      Concept diagram: Входы leads to большие числа на практике leads to РезультатВходыбольшие числа напрактикеРезультат
      Практическое применение больших чисел.

      Криптография говорит о размерах ключей в битах: 2048-битный модуль RSA это примерно 617-значное десятичное целое. Комбинаторика даёт факториалы и биномиальные коэффициенты, которые сразу выходят за 64-битные регистры. Задачи соревновательного программирования часто просят ответы по модулю простого, что всё равно требует больших промежуточных произведений перед редукцией.

      Когда язык предлагает встроенный тип больших целых (Python int, Java BigInteger, JavaScript BigInt), этот калькулятор это черновик для проверки тех программ. Когда язык застрял на doubles, калькулятор это эталон того, каким должно было быть точное значение.

      Часто задаваемые вопросы

      Почему обычный калькулятор не справляется с большими целыми?

      Double хранит около 15-17 значащих цифр и не может представить каждое целое выше 2⁵³. Большие целые округляются, поэтому младшие цифры становятся неверными, хотя дисплей всё ещё выглядит точным.

      Сколько цифр в 100!?

      100! имеет 158 цифр. Калькулятор больших чисел возвращает полное целое и сообщает это число во вспомогательном поле, совпадая с тестовым fixture движка в тестах.

      Что такое произвольная точность?

      Произвольная точность значит, что число цифр растёт по необходимости вместо фиксированного регистра вроде 64 бит. Результаты остаются точными для целочисленных операций, пока не кончится память.

      Как вычисляется НОД?

      Алгоритм Евклида повторно заменяет большее число остатком от деления на меньшее, пока остаток не станет нулём. Последний ненулевой остаток и есть НОД. НОК затем выводится из произведения, делённого на НОД.

      Может ли калькулятор разложить любое число?

      Нет. Пробное деление обрабатывает числа с малыми простыми множителями. Полупростые с двумя большими простыми, как в RSA, не разложатся за интерактивное время в браузере, и страница не притворяется обратным.

      Всегда ли степени дают точные результаты?

      Целые степени с неотрицательными показателями возвращают точные целые. Дробные показатели и нецелые корни используют настройку точности и могут округлять. Отрицательные показатели дают обратные величины, которые обычно не целые.

      Какие форматы ввода принимаются?

      Десятичные строки цифр по умолчанию. Префиксы 0x и 0b позволяют hex и двоичный целочисленный ввод для тех же операций. Запятые как разделители тысяч не обязательны и могут отклоняться парсером поля.

      Загружаются ли вычисления на сервер?

      Нет. Работа с большими целыми выполняется в браузере. Большие промежуточные значения не покидают устройство, что важно, когда операнды из ключей домашних заданий или локальных экспериментов.

      Как это связано с JavaScript BigInt?

      Движок использует арифметику больших целых в том же духе, что и BigInt: точные целые, без округления с плавающей точкой. Страница это UI над этими операциями с подсчётом цифр, факториалами и помощниками разложения.

      Когда повышать точность?

      Повышайте точность для корней и неточного деления, когда нужно больше значащих цифр для сравнения или печати. Целочисленный факториал, НОД и модульная арифметика не используют эту настройку.

      Итог

      Калькулятор больших чисел сохраняет точные целочисленные результаты там, где doubles теряют цифры после примерно 15 значащих и после 2⁵³. Арифметика, степени, факториалы, НОД, НОК и пробное разложение выполняются локально; 100! сообщается как 158-значное целое. Элементы точности применяются только к нецелым корням и делениям. Факторизация криптографического масштаба признана вне интерактивного пробного деления.