Рассмотрим целые числа по модулю q
где q
простое число, генератор - это любое целое число, 1 < x < q
так что оно x^1, x^2, ..., x^(q-1)
охватывает все q-1
целые числа между 1
и q-1
. Например, рассмотрим целые числа по модулю 7 (которые мы записываем как Z_7
). Затем 3, 3^2 mod 7 = 2, 3^3 = 27 mod 7 = 6, 3^4 = 81 mod 7 = 4, 3^5 = 243 mod 7 = 5, 3^6 = 729 mod 7 = 1
охватывает все значения 3, 2, 6, 4, 5, 1
охватывает все целые числа, 1..6
как требуется.
Задача состоит в том, чтобы написать код, который принимает вход n
и выводит генератор для Z_n
. Вы не можете использовать любую встроенную функцию или библиотеку, которая делает это за вас, конечно.
Единственным ограничением производительности вашего кода является то, что вы должны его протестировать до завершения n = 4257452468389
.
Обратите внимание, что 2^n
означает 2
власть n
. Это ^
представляет возведение в степень.
1 < x < q
намного облегчает задачу.