Я экспериментирую с модульной арифметикой и большими числами (все больше и больше в криптографию).

Я пытаюсь сделать проблемы по линии 3027 ^ 253 мод 3233 и Excel возвращает ошибки.

Я думал о том, чтобы разбить проблему на что-то вроде

(1000 ^ 253 мод 3233) + (1000 ^ 253 мод 3233) + (1000 ^ 253 мод 3233) + (27 ^ 253 мод 3233)

но это тоже не работает. Я не могу стать намного больше, чем

(10 ^ 253 мод 3233), так что это не очень помогает.

Вполне может быть, что Excel не может справиться с такой проблемой. Если это так, что будет?

В случае, если это имеет значение, мой уровень программирования низкий - приличный JavaScript и базовый PHP (может взаимодействовать с базой данных).

РЕДАКТИРОВАТЬ:

Javascript также содержит ошибки:

Math.pow(1000, 253); возвращает бесконечность. Как и Math.pow(100, 253);

2 ответа2

2

Одно решение идет к Вольфраму | Альфа виджет по модулю

Это быстро и легко решает эти проблемы.

1

Вот некоторый код, основанный на общем алгоритме:

Public Function xMod(baseV As Long, pwr As Long, modV As Long) As Long
    Dim i As Long

    xMod = 1
    For i = 1 To pwr
        xMod = xMod * baseV
        xMod = xMod - Int(xMod / modV) * modV
    Next i
End Function

Но, к сожалению, я понятия не имею, работает ли это! .................. это то, что вы ожидаете ?? :

(согласен с виджетом Wolfram Widget)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .