PS. Ну а сравнение разрешимо, если и только если
.
Продолжим. Наша цель определить хорошесть заданного нечётного простого
. В виду свободы выбора первообразного корня, можно считать, что
. Тогда, так как
соответствует первообразному корню, то
.
Пусть
- это максимальный делитель
имеющий тот же радикал, что и
. Если
, то
- плохое, что доказывается выбором
. Поэтому для хорошего
с необходимостью имеем, что радикалы
и
совпадают. Будем считать, что это условие выполнятся.
Далее, делимости нет если
нечётно, так как
, но
. Поэтому для плохого
, свидетельствующее
будет чётно.
Наконец, если
содержит простой делитель числа
, то он не делит
и плохой делимости не будет. Оставшийся плохой случай, это - нечётное
и четное
взаимно-простое с
, что имеет место для
и, например,
.
Итак,
- хорошее только если для
выполняется
, за исключением случая, когда
и
.
Код:
? forprime(p=3,10^8, s=(p-1)/znorder(Mod(2,p)); if(vecprod(factor(p-1)[,1])==vecprod(factor(2*s)[,1]) && (p%4!=1 || s%2!=1),print1(p,", ")) )
3, 17, 251, 257, 433, 641, 1459, 3457, 3889, 21169, 39367, 54001, 65537, 110251, 114689, 139969, 210913, 246241, 274177, 319489, 629857, 746497, 974849, 995329, 1161217, 1299079, 1492993, 1769473, 2020001, 2424833, 2555521, 2654209, 5038849, 5304641, 5419387, 5746001, 6049243, 6561001, 6700417, 6858433, 8039359, 8503057, 10113049, 10194337, 10775777, 11337409, 12400001, 12644353, 13381633, 13631489, 14155777, 17360407, 26017793, 26232337, 26891201, 27993601, 28311553, 28934011, 33436801, 33975937, 36720001, 39051073, 40960001, 45592577, 47904049, 56337751, 63700993, 63766529, 75600001, 93312001, 96468751,