Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Деление большого числа


Автор: YahоО 3.1.2025, 14:48
Выдает ошибку:
Код

a=int("545484731234567035400745711")
b=1173
h=int(a/b)*b+a%b
print(a)
print(h)
print(a==h)


Понятно, число большое. Не понятно как решить такую задачу.

Пробовал обмануть питон:
Код

h=int((a/b)/1000000)*b*1000000+a%b
print(h)
print(a==h)

Питон не обмануть ))

А решить такую задачу можно?

Автор: Oldshelf 3.1.2025, 18:05
Можно попробовать перевести исходное число в текст. Разложить на составляющие в тексте же. Произвести вычисления с каждым получившимся числом отдельно. Дополнить числа пропущенными нулями и снова сложить текстом. Как именно это сделать - плохо представляю. Просто идея.

Добавлено через 5 минут и 32 секунды
Если речь только о делении и умножении, то можно ещё попробовать самостоятельно написать функции деления столбиком и умножения. Давно забыл, как это делается, но принцип должен быть простой и ограничений на числа там нет.

Автор: YahоО 3.1.2025, 19:49
Oldshelf, благодарю за идею!
В js есть специальный скрипт для длинных чисел, но переложить его на питон...
В общем все оказалось настолько неожиданно, Вы наверно будете удивлены не меньше меня:
Код

h=(a//b)*b+a%b



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)