Здравствуйте, loteryprize, Вы писали:
L>Найти все числа, такие, что, квадрат числа по модулю праймориала (произведения последовательных простых чисел) равен самому числу. Праймориалы нужно перебрать (по возрастанию значений) все или если это невозможно, то хотя-бы большую часть.
L>Пример:
L>Пусть P=2*3*5*7*11=2310
L>Тогда x*x == x mod 2310, имеет решение x=715
Вооружаешься китайской теоремой об остатках и решаешь уравнение для каждого простого множителя отдельно, потом объединяешь все решения.
Уравнение x*x == x mod p для простого p будет иметь два корня: 0 и 1. То есть если в праймориале n сомножителей, то у исходного уравнения будет 2n решений. То есть можно просто перебирать все целые числа от 0 до 2n-1 и восстанавливать решения из их двоичной записи алгоритмом Гарнера.