Найти - Пользователи
Полная версия: Возведение в большую степень
Начало » Центр помощи » Возведение в большую степень
1
Rumato
Здравствуйте, мне нужно возвести 75790643190143 в степень 1908298, т.е.


 75790643190143**1908298
я думаю может быть разложить на простые множители степень и потом поочерёдно возводить. 1908298 факторизуется на , но тоже проблема
 75790643190143**4397
это много - не считается. Хотя можно факторизовать оба числа и потом их возводить

Есть какие-нибудь решения таких проблем? или идеи как решить?
Studentik
import decimal
d1 = decimal.Decimal('75790643190143')
d2 = decimal.Decimal('1908298')
d3 = d1**d2
print(d3)
4.745492313861105442800525716E+26486442
Rumato
спасибо большое - помогло, а я с циклами и факторизацией пытался сделать;))
Rumato
в продолжение темы (надеюсь не сильно обнаглею) : число d3 получили,как его по модулю поделить на другое число? тоже большое, типа такого : 99595173815424, т.е d3 mod 99595173815424 или же d3%99595173815424
cookie-god
Rumato
в продолжение темы (надеюсь не сильно обнаглею) : число d3 получили,как его по модулю поделить на другое число? тоже большое, типа такого : 99595173815424, т.е d3 mod 99595173815424 или же d3%99595173815424
http://e-maxx.ru/algo/binary_pow
Только на каждой итерации там надо брать a % 99595173815424
Rumato
cookie-god, интересная инфа, мне примерно тоже в универе на фортране показали, спасибо за помощь!)
Андрей Светлов
Ой! стандартнейшая функция pow принимает три параметра. int/long вполне подойдет, decimal не требуется.
Это вы RSA ручками делаете?
Rumato
Андрей Светлов, да - это RSA, нужно написать программу, которая взламывает сообщение, впринципе почти всё сделал, только на последнем этапе небольшая остановка)
Андрей Светлов
Насколько помню, при имеющихся ключах было кода строк на десять.
Rumato
у меня немного больше, как напишу - выложу, может полезным будет
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB