Как проверить, принадлежит ли элемент a определенной циклической группе G простого порядка по заданному генератору? Прямо сейчас я просто генерирую все элементы в группе, сохраняю их в контейнер и проверяю, есть ли в нем элемент. Это код, который я сейчас использую для генерации всех элементов группы:
public HashSet<BigInteger> group_elements(BigInteger g, BigInteger q) {
HashSet<BigInteger> group = new HashSet<BigInteger>();
BigInteger element = modPow(g,ONE,q);
for (int i = 2; !group.contains(element); i++) {
group.add(element);
element = modPow(g, BigInteger.valueOf(i), q);
}
return group;
}
И чтобы увидеть, есть ли элемент в группе, я просто проверяю:
if (group.contains(num)) { ... }
Как видите, язык Java