Considérez les entiers modulo qoù qest premier, un générateur est n'importe quel entier de 1 < x < qsorte qu'il x^1, x^2, ..., x^(q-1)couvre tous q-1les entiers entre 1et q-1. Par exemple, considérons les entiers modulo 7 (que nous écrivons comme Z_7). Puis 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 = 1couvre toutes les valeurs 3, 2, 6, 4, 5, 1couvre tous les entiers 1..6comme requis.
La tâche consiste à écrire du code qui prend une entrée net génère un générateur pour Z_n. Bien entendu, vous ne pouvez pas utiliser de bibliothèque ou de bibliothèque intégrée qui le fasse pour vous.
La seule restriction sur les performances de votre code est que vous devez l'avoir testé jusqu'à son terme n = 4257452468389.
Notez que cela 2^n signifie 2la puissance de n. Cela ^représente l'exponentiation.
1 < x < qrend le défi beaucoup plus facile imo.