|

楼主 |
发表于 2023-3-20 13:51
|
显示全部楼层
求出任意素数P 的所有 本原根 的计算方法
设 g 是素数P 的一个原根,
当 1 <= 2n -1 < P 且 2n -1 与 P -1 互素 时,
设 g^(2n -1) ≡ r(mod P) , 则 r 是 P 的原根。
s = 0;
For[g = PrimitiveRoot[P]; P = 29; n = 1, n <= (P - 1)/2, n++,
If[CoprimeQ[2 n - 1, P - 1], s = s + 1;
Print[s, "-----", g, "---", 2 n - 1, "-----", P, "-----",
PowerMod[g, 2 n - 1, P], "-----", CoprimeQ[2 n - 1, P - 1]]]]
|
|