Но учитывая редкость таких делителей не думаю что их проверка как-то ускорит программу.
Не понимаю к чему это сказано.
Меня интересовала корректность работы алгоритма. Не хочется отбрасывать цепочки, если они могут оказаться годными. И пока что проверка показывает, что таких отбрасываний не происходит. По причине малости экзотических случаев.
Хотя, вот уже 36-ю степень десятки насчитал.
6-я фильтрация пока реализована так:
111112222233333
Проход по всем оставшимися местам и для тех мест, где дельта ровно 1 (в примере таких мест 5), частные сортируются по убыванию.
Далее для каждого места осуществляется проверка по Полларду, 30 тысяч итераций.
Если фактор найден,
то проверяем частное самой быстрой командой !ispseudorprime(cha,1).
Ежели определено, что частное составное, это значит, что в разложении частного есть ещё как минимум один фактор, а значит имеется перебор.
Но и при переборе возможны 8 делителей на этом месте. Например:
На 4-м этапе найден фактор 79.
На 6-м этапе Поллардом найден 7-12-значный фактор.
Частное — составное. И вполне может и 2-й и 3-й раз разделиться на 79.
Код:
Три фактора 79 — 4 делителя
7—12-значный фактор — 2 делителя
_________________________________
8 делителей
e6 * e7—e12 * e12 ——> e6 * e7—e12 * e6 * e6 ——> e25-e30 маловато
Но и при переборе возможны 16 делителей на этом месте. Например:
На 4-м этапе найдены факторы 79 и 83.
На 6-м этапе Поллардом найден 7-12-значный фактор
Частное — составное. И вполне может и 2-й и 3-й раз разделиться на 79.
Код:
Три фактора 79 — 4 делителя
Один фактор 83 — 2 делителя
7—12-значный фактор — 2 делителя
_________________________________
16 делителей
e6 * e6 * e7—e12 * e12 ——> e6 * e6 * e7—e12 * e6 * e6 ——> e31-e36 маловато