Re: Праймориалы
От: watch-maker  
Дата: 29.05.13 16:52
Оценка:
Здравствуйте, 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 и восстанавливать решения из их двоичной записи алгоритмом Гарнера.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.