Considere o módulo de números inteiros q
onde q
é primo, um gerador é qualquer número inteiro, de 1 < x < q
modo que x^1, x^2, ..., x^(q-1)
cubra todos q-1
os números inteiros entre 1
e q-1
. Por exemplo, considere o número inteiro do módulo 7 (que escrevemos como Z_7
). Em seguida, 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
abrange todos os valores, 3, 2, 6, 4, 5, 1
abrange todos os números inteiros, 1..6
conforme necessário.
A tarefa é escrever o código que recebe uma entrada n
e gera um gerador Z_n
. Você não pode usar nenhuma biblioteca ou biblioteca interna que faça isso para você, é claro.
A única restrição ao desempenho do seu código é que você deve testá-lo até o fim n = 4257452468389
.
Note que isso 2^n
significa 2
o poder de n
. Isso ^
representa exponenciação.
1 < x < q
facilita muito o desafio.