|

楼主 |
发表于 2019-3-13 17:59
|
显示全部楼层
求 a^k mod p 的 余数
(1 <= k为满足 a^k mod p = 1 的最小指数, p为素数.)
s = 0;
For[a = 7; p = 29; k = 1, k <= MultiplicativeOrder[a, p], k++,
s = s + 1;
Print[s, "-----", a, "---", k, "-----", p, "----", PowerMod[a, k, p]]]
求 a^k mod p 的 余数之和
(1 <= k为满足 a^k mod p = 1 的最小指数, p为素数.)
Sum[PowerMod[7, k, 29], {k, 1, MultiplicativeOrder[7, 29]}]
求出任意素数P 的所有 本原根 的计算方法
设 g 是素数P 的一个原根,
当 1 <= 2n -1 < P 且 2n -1 与 P -1 互素 时,
设 g^(2n -1) mod P = r,则 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]]]] |
|