findViewById<WEngine::TextView*>;
(g^m mod n^2) * (r^n mod n^2) mod n^2
nn = n.multiply(n);
res = g.modPow(m, nn).multiply(r.modPow(n, nn)).mod(nn);
template <class Container>
void print(const Container& c, string sep=" ", string end="\n")
{
for (const auto& e : c)
std::cout << e << sep;
std::cout << end;
}
template <class Container>
void print(const Container& c, string sep=" ", string end="\n")
{
std::ostream_iterator<typename Container::value_type>
out_it(std::cout, sep.c_str());
std::copy(c.begin(), c.end(), out_it);
std::cout << end;
}
(p-1) / q
. Это и будет искомое число с порядком q.(p-1)/k
, где k - простой делитель p-1. Если везде получили не 1, то текущее число - первообразный корень.