для заданных x
, мне нужно вычислить минимальную n
, который приравнивает верно для формулы 10^n ≡ 1 (mod 9x)
Как искать минимальный п, что 10^п ≡ 1 модам (ая) для данных х
Моего алгоритм прост. Для i = 1 to inf
, я петлю, пока не получаю результат. Всегда есть результат, если gcd(10, x) = 1
. Между тем, если я не получу результата, я увеличиваю i
на 1.
Это очень медленно для больших чисел или чисел с факторизацией больших значений, поэтому я спрашиваю, есть ли другой способ рассчитать его быстрее. Я пробовал с потоками, получая каждый поток следующим 10^i
для расчета. Производительность немного лучше, но большие штрихи все еще не заканчиваются.
Вы можете избежать НОДА/модуля расчета на каждая итерация, вычисляя '10^(n + 1)% 9x' в терминах' 10^n% 9x'. –
Если вы делаете расчет mod 9x, это не должно быть медленным. Btw. Каков типичный размер 'x'? – Henry
@OliverCharlesworth Я избегаю GCD, потому что я никогда не передаю свой алгоритм число с делителями 2 или 5. –