Как вычислить огромные числа с помощью Python?Python

Программы на Python
Anonymous
Как вычислить огромные числа с помощью Python?

Сообщение Anonymous »


Сейчас я пытаюсь найти значение x,

x = (math.log(X) - math.log(math.fabs(p))/math.log(g)) с:

X = 537106952043235135093377339090215625473507408450283231952255920597624359552971105918480198780508534255819815640646 92996024279718640577281681757923541806197728862534268310235863990001242041406600195234734872865710114622767319497082014129 08147635982838670976889326329911714511434374891326542317244606912177994106645736126820796903212224 р = 79293686916250308867562846577205340336400039290615139607865873515636529820700152685808430350565795397930362488139681935 988728405965018046160143856932183271822052154707966219579166490625165957544852172686883789422725879425460374250873493847078 682057057098206096021890926255094441718327491846721928463078710174998090939469826268390010887 г = 73114111352295288774462814798129374078459933691513097211327217058892903294045760490674069858786617415857709128629468431 860886481058309114786300536376329001946020422132220459480052973446624920516819751293995944131953830388015948998083956038870 701901293308432733590605162069671909743966331031815478333541613484527212362582446507824584241 К сожалению, Python не может обрабатывать такие большие числа.

Кто-нибудь знает способ решить эту проблему?

Спасибо за помощь.

ИЗМЕНИТЬ

Поскольку вам часто интересно, что я пытаюсь сделать:

Чтобы иметь возможность безопасно общаться, Алиса и Боб приступают к обмену ключами Диффи-Хеллмана. Для этого они используют простое число p :

p = 792936869162503088675628465772053403364000392906151396078658735156365298207001526858084303505657953979303624881396 819359887284059650180461601438569321832718220521547079662195791664906251659575448521726868837894227258794254603742508734938 47078682057057098206096021890926255094441718327491846721928463078710174998090939469826268390010887 И целое число g:

g = 731141113522952887744628147981293740784599336915130972113272170588929032940457604906740698587866174158577091286294 684318608864810583091147863005363763290019460204221322204594800529734466249205168197512939959441319538303880159489980839560 38870701901293308432733590605162069671909743966331031815478333541613484527212362582446507824584241 Алиса выбирает секретное число x, вычисляет X=g^x mod p и отправляет X Бобу по незащищенному каналу. Боб выбирает секретное число y, вычисляет Y=g^y mod p и отправляет Y по тому же незащищенному каналу Алисе. Оба могут вычислить значение Z = X^y = Y^x = g^xy mod p

Следя за каналом, Чарли получает значение X и Y:

X = 537106952043235135093377339090215625473507408450283231952255920597624359552971105918480198780508534255819815640646 92996024279718640577281681757923541806197728862534268310235863990001242041406600195234734872865710114622767319497082014129 08147635982838670976889326329911714511434374891326542317244606912177994106645736126820796903212224 Y = 17548462742338155551984429588008385864428920973169847389730563268852776421819130212521059041463390276608317951678117988 955994615505741640680466539914477079796678963391138192241654905635203691784507184457129586853997459084075350611422541722123 509121359133932497700621300814065254996649070135358792927275914472632707420292830992294921992 Ключевым моментом этого упражнения является md5сумма значения Z

Вернуться в «Python»