[GAP Forum] Idempotents modulo N
Jean-Claude Arbaut
arbautjc at gmail.com
Sun Jun 16 21:48:02 BST 2013
Hello GAP users,
GAP can compute idempotents, like this :
a := Idempotents(MatrixAlgebra(Integers mod 3, 2));
List(a, x -> x*x - x);
For Integers mod n, it also works, but it's not very fast. However, it's a
fairly easy task, using chinese remainder theorem, and if n = p1^k1 * ... *
ps^ks, then there are 2^s solutions.
Here is a program to compute them, in case it can be useful.
IdempotentsMod := function(n)
local a, m, s, r;
m := List(Collected(FactorsInt(n)), v -> v[1]^v[2]);
s := Length(m);
a := [];
for r in IteratorOfTuples([0, 1], s) do
Add(a, ChineseRem(m, r));
od;
Sort(a);
return List(a, x -> ZmodnZObj(x, n));
end;
For example :
n := 2000000;
Idempotents(Integers mod n);
IdempotentsMod(n) = last;
Length(IdempotentsMod(Factorial(50)));
Jean-Claude Arbaut
More information about the Forum
mailing list