Но там вылезает, видимо, вопрос поддержки многопоточности, для меня terra incognita.
В PARI многопоточность ... э ...
кривоватая странная, даже на системах с общей памятью он считает что память раздельная (локальная) и дублирует даже read only данные в каждый поток. В данном случае кроме действительно локальных переменных будет дублирована и вся таблица простых для forprime ... Это и память и время на копирование.
Возможно стоит подумать об своей таблице простых, тем более что их можно хранить намного компактнее (например всего 137МБ до 2^32 вместо 10ГБ у PARI). Хотя возможно придётся общую таблицу разбить на две, с прямым видом для простых до скажем пары тысяч (ради скорости перебора) и компактным видом для всех остальных, тут уже скорость доступа меньше тормозит.
-- 04.12.2025, 17:44 --То есть решение всё-таки может быть пропущено, хотя и с крошечной вероятностью?
Нет, Вы разве не видели что написал про квадрат и куб? Они решениями нами пока не считаются.
Не понял вопроса. Я фильтрую по предложенному Вами варианту с forprime, который по тесту самый быстрый. От factоr-а пока отказался.
Ещё раз прочитайте сообщение по ссылке. Там приведён
доработанный код! Который отфильтровывает и квадраты и numdiv<48. В Вашем же
списке они есть - значит у Вас код старый, не доработанный. В этом и вопрос - почему. Потому что с доработанным должно быть не 100000/19, а 100000/1 (и 1000000/1).
-- 04.12.2025, 18:00 --Для информации: проверка простых 3...19 что они в правильной степени (это "длинный" if в программах VAL), отфильтровывает 5.85:1, проверка и простых 23...53 что они в квадратах (цикл с T[],P[] в программах VAL) улучшает фильтрацию до 7.35:1, но к сожалению несколько увеличивает время выполнения, для 1млн кандидатов с 44.9с до 48.4с.
Правда это если скорость оценивать по уже пофильтрованным кандидатам. Если же оценивать по диапазону i (или n что эквивалентно), как и должно быть, то второй вариант быстрее процентов на 15: 5847153/44.9 > 7348061/48.4.