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,