Добрый день. Я тестирую некоторые вещи с RSA в Python, и я нашел проблему, которую могу решить ... Я пробовал с Python 3.8.2 на Win10, а также с Python 3.7.7 на Linux.
Позволяет иметь число, например:
c1= 36251028222184669113487409017454975826565106104917435244458509025325597595097437837292486054294655693705631371301937875354932194238774646471806718003961847732817524682493697446263462385101163784046225206169381882321268194820701612704489320707217757417267296259559235617734319007884212443563740615946094992859
, что нечетно, и имеет некоторые делители, как число 3. Однако, используя python, следующий результат неверен:
>>> int(c1/3)
12083676074061555316246267430643464247176522791037114836775756754628361403915178709103046469098451026523530772272080775928995905537251905701994027100469698250900136798602107760548114248253333583378545153076020030263178871202026581924052160700631938491851060523788925385374271125821574344356121690982561349632
Потому что четный, и потому что другой результат:
>>> c1-(c1/3)*3
4.9896007738368e+291
Так что я, вероятно, что-то упускаю из-за огромных чисел в Python, но после при поиске в Google все, что появляется, говорит, что Python может обрабатывать длинные целые числа (например: Обработка очень больших чисел в Python)
Заранее спасибо
EDIT1: использование оператора // не работает ни один. С c1 // 3 он показывает нечетное число, но не с 1433, например:
>>> int(c1/1433)
25297298131322167445037545214187294306719866275723199239586371433276402101706584876000795120234021688465172586752437074519879774327812782348905848779769082172156601811448934599891376653705513433451245958986783036140639646619734644642118968668454860764517223706466696549981028176876987462015607168839974912
>>> int(c1//1433)
25297298131322169653515288916577094086926103353047756625581653192830144867479021519394616925537093994211885116051596563401906625428314477649551094210720061223180408012905580911558592034264594406173220660271724970217214371821843414308785290095755587869691065079943639649500571533764279444217544044623932304