gap> for n in [2..8] do L:=Elements(ZmodnZ(n));Print(n,"->",L,"\n");od;
2->[ 0*Z(2), Z(2)^0 ]
3->[ 0*Z(3), Z(3)^0, Z(3) ]
4->[ ZmodnZObj( 0, 4 ), ZmodnZObj( 1, 4 ), ZmodnZObj( 2, 4 ), ZmodnZObj( 3, 4 ) ]
5->[ 0*Z(5), Z(5)^0, Z(5), Z(5)^2, Z(5)^3 ]
6->[ ZmodnZObj( 0, 6 ), ZmodnZObj( 1, 6 ), ZmodnZObj( 2, 6 ), ZmodnZObj( 3, 6 ), ZmodnZObj( 4, 6 ), ZmodnZObj( 5, 6 )
]
7->[ 0*Z(7), Z(7)^0, Z(7), Z(7)^2, Z(7)^3, Z(7)^4, Z(7)^5 ]
8->[ ZmodnZObj( 0, 8 ), ZmodnZObj( 1, 8 ), ZmodnZObj( 2, 8 ), ZmodnZObj( 3, 8 ), ZmodnZObj( 4, 8 ), ZmodnZObj( 5, 8 ),
ZmodnZObj( 6, 8 ), ZmodnZObj( 7, 8 ) ]
D:\go20190906\src\SmallRing>go build ZnElement.go
[0x7FEF96C3C50] ANOMALY: meaningless REX prefix used
# command-line-arguments
[0x7FEF96C3C50] ANOMALY: meaningless REX prefix used
D:\go20190906\src\SmallRing>ZnElement.exe
[0x7FEF9B73C50] ANOMALY: meaningless REX prefix used
[0*Z(2),Z(2)]
[0*Z(3),Z(3)^0,Z(3)]
[ZmodnZObj(0,4),ZmodnZObj(1,4),ZmodnZObj(2,4),ZmodnZObj(3,4)]
[0*Z(5),Z(5)^0,Z(5),Z(5)^3,Z(5)^2]
[ZmodnZObj(0,6),ZmodnZObj(1,6),ZmodnZObj(2,6),ZmodnZObj(3,6),ZmodnZObj(4,6),ZmodnZObj(5,6)]
[0*Z(7),Z(7)^0,Z(7)^2,Z(7),Z(7)^4,Z(7)^5,Z(7)^3]
[ZmodnZObj(0,8),ZmodnZObj(1,8),ZmodnZObj(2,8),ZmodnZObj(3,8),ZmodnZObj(4,8),ZmodnZObj(5,8),ZmodnZObj(6,8),ZmodnZObj(7,8)
]
package main
import (
"fmt"
"math"
)
/* =========================== Begin of of function IsPrime、PrimitiveRootMod、LogMod =========