Калькулятор больших чисел
Вычисляйте целые числа за пределами точности с плавающей точкой: арифметика, степени, корни, факториалы, НОД, НОК и простые множители. 100! показывает все 158 цифр точно.
Результаты обновляются при вводе. Ctrl/Cmd+Enter копирует основной результат.
Результат
—
Просмотр битов
Показать решение
Калькулятор больших чисел выполняет точную целочисленную арифметику со значениями, которые обычные калькуляторы с плавающей точкой не удерживают. Сложение, вычитание, умножение, деление, модуль, степени, целочисленные корни, факториалы, НОД, НОК и пробное разложение на простые множители возвращают полные строки цифр, а не научные приближения. Число цифр и необязательные элементы управления точностью сопровождают каждый результат, чтобы размер ответа был виден с первого взгляда.
Все расчёты выполняются в браузере. Ничего из введённого не отправляется на сервер.
Вычисления с числами за пределами стандартной точности
Целые числа произвольной точности растут настолько, насколько позволяет память. Введите операнды как десятичные строки цифр или с префиксами 0x / 0b, когда удобен hex или двоичный ввод, и выберите операцию. Основной вывод это точный результат; вспомогательное поле сообщает, сколько цифр он содержит.
Стандартные калькуляторы перестают быть точными задолго до того, как это важно для криптографии или комбинаторики. Факториалы, большие степени и произведения многих слагаемых переполняют float IEEE в бесконечность или округляют младшие цифры. Этот инструмент сохраняет каждую цифру для целочисленных результатов, в этом смысл страницы.
Где стандартные калькуляторы теряют точность
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
Умножение и деление с плавающей точкой тоже вносят ошибку округления на дробных результатах. Калькулятор больших чисел избегает этого класса ошибок для целочисленных операций, используя арифметику больших целых. Нецелые корни и деления всё ещё требуют настройки точности, потому что такие результаты по природе не конечные строки цифр.
Арифметика очень больших целых
Сложение, вычитание, умножение, деление и модуль принимают операнды из сотен или тысяч цифр. Деление возвращает целое частное; модуль возвращает остаток с обычными соглашениями знака для движка. Умножение двух 100-значных чисел даёт произведение до 200 цифр без научной нотации, скрывающей середину.
Заём и перенос следуют тем же правилам, что и при ручной арифметике, но по массивам цифр. Производительность остаётся интерактивной для размеров, типичных в домашних заданиях и олимпиадах по программированию; патологические вводы с десятками тысяч цифр могут приостановить вкладку, пока браузер работает. Отмените и повторите с меньшим случаем, если страница перестала отвечать.
Степени, корни и факториалы
Степени вычисляют base^exponent для неотрицательных целых показателей с точным целочисленным результатом. Целочисленные квадратные корни возвращают пол б истинного корня и могут показать остаток. Факториал n! перемножает каждое целое от 1 до n и возвращает полную строку цифр; для 100! это 158 цифр, далеко за пределами того, что double хранит точно.
100! имеет 158 цифр. Ведущие цифры 9332621544…, полная строка слишком длинна для записи от руки, поэтому существует калькулятор. Одно число цифр отвечает на многие проверки олимпиад: если задача спрашивает, поместится ли 100! в 256-битный регистр, 158 десятичных цифр уже достаточно для решения (256 бит вмещают не более 78 десятичных цифр).
| n | n! (сокращённая форма) | Цифр |
|---|---|---|
| 10 | 3 628 800 | 7 |
| 20 | 2 432 902 008 176 640 000 | 19 |
| 50 | (длинное) | 65 |
| 100 | (длинное) | 158 |
Отрицательные факториалы для целых не определены. Очень большие n в конце концов исчерпают память браузера; инструмент сообщает об ошибке, а не возвращает усечённое значение.
Наибольший общий делитель и наименьшее общее кратное
НОД использует алгоритм Евклида: заменяйте большее число остатком от деления, пока остаток не станет нулём. Последний ненулевой остаток и есть НОД. НОК следует из НОК(a, b) = |a × b| / НОД(a, b) с умножением больших целых, чтобы произведение не переполнилось.
Взаимно простые целые имеют НОД 1. Сокращение дроби или соотношения сторон это деление обоих членов на НОД; Калькулятор соотношения сторон владеет этим UI, а эта страница предоставляет сырые операции НОД и НОК для произвольных целых. Ввод 1920 и 1080 даёт НОД 120, тот же множитель, который сокращает кадр Full HD до 16:9.
Простые множители большого числа
Пробное деление снимает малые простые множители, затем продолжает вверх по оставшемуся сомножителю, пока он не станет простым или не достигнут предел поиска. Полупростые числа из двух больших простых это трудный случай: пробное деление не завершится интерактивно в браузере, и страница сообщает этот предел, а не зависает молча.
| Ввод | Множители |
|---|---|
| 12 | 2² × 3 |
| 97 | 97 (простое) |
| 1 001 | 7 × 11 × 13 |
Калькулятор честно сообщает ограничения. Числа с малыми множителями разлагаются быстро. Числа, построенные как модули RSA, не завершатся за интерактивное время, и это ожидаемо: криптография опирается на эту трудность. Для учебных и олимпиадных задач с умеренными составными числами вида разложения достаточно.
Точность для неточных результатов
Квадратные корни неидеальных квадратов и деления, не дающие целых, требуют настройки точности: числа значащих цифр для вычисления перед округлением. Научная нотация доступна для очень больших или малых величин, когда полная строка цифр неудобна.
Только целочисленные операции игнорируют элемент управления точностью, потому что точный ответ конечен. Смешение режимов частая ошибка: точность 10 не усекает 100!; факториал всё равно возвращает все 158 цифр. Точность применяется только к приближённым операциям.
Практическое применение больших чисел
Криптография говорит о размерах ключей в битах: 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-значное целое. Элементы точности применяются только к нецелым корням и делениям. Факторизация криптографического масштаба признана вне интерактивного пробного деления.