maxal писал(а):
Руст писал(а):
Я вроде бы на русском языке четко поставил задачу. В чем непонятки-то?
В том то и дело, что условие было сформулировано так, что каждый раз приходилось догадываться что же вы на самом деле хотите?.
1. Не понятно зачем

.
2. Чем не понравилось первоначальное решени?
Вообще то, что найти образующую, что квадратичный невычет всё равно надо перебирать простые q примерно до

и проверить по полиномиальному тесту возведения в степень. Только здесь бесполезна (и не нужна) проверка, что g является образующей.
Однако, гипотеза о том, что проверка до

достаточно не доказано, доказаны результаты типа

как для минимальной образующей так и для минимального квадратичного вычета. Т.е. что указанный алгоритм всегда закончится за полиномиальное время не доказано (на практике эта гипотеза оправдывается). Вроде имеется доказательство о том, что в среднем (по всем простым меньше х) это действительно полиномиальное.
3. С точки зрения решения эта задача эквивалентно более общей: найти примитивные корни х:

. Общая задача решается абсолютно так же. Находится необходимое условие

, если

то возводим числа a в степень c

и если для всех

то x примитивный корень по модулю p. Возводим k-1 раз в p - ую степень по модулю

потом по модулю

,... по модулю

и получим примитивный корень по модулю

. Остальные примитивные корни по модулю

находятся возведением полученного решения по модулю

в степени взаимно простые по модулю n.
Если дадите ответ на указанные вопросы, может пойму смысл вашей задачи.