Розглянемо модуль цілих чисел, 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
робить виклик набагато простішим ІМО.