Rozważ liczbę całkowitą modulo, q
gdzie q
jest liczbą pierwszą, generator jest dowolną liczbą całkowitą 1 < x < q
, która x^1, x^2, ..., x^(q-1)
obejmuje wszystkie q-1
liczby całkowite między 1
i q-1
. Weźmy na przykład liczby całkowite modulo 7 (które piszemy jako Z_7
). Następnie 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
obejmuje wszystkie wartości 3, 2, 6, 4, 5, 1
obejmuje wszystkie liczby całkowite 1..6
zgodnie z wymaganiami.
Zadanie polega na napisaniu kodu, który pobiera dane wejściowe n
i generuje generator Z_n
. Oczywiście nie możesz użyć żadnej wbudowanej biblioteki ani biblioteki, która to zrobi.
Jedynym ograniczeniem wydajności kodu jest to, że musisz go przetestować do końca n = 4257452468389
.
Zauważ, że 2^n
oznacza 2
to moc n
. To ^
reprezentuje potęgowanie.
1 < x < q
sprawia, że wyzwanie jest o wiele łatwiejsze imo.