(SageMath)
if not Integer(k).is_prime(): return False
for D in [1, 2, 3, 7, 11, 19, 43, 67, 163]:
fct = QuadraticField(-D).ideal(k).factor()
if len(fct)==2:
pi = fct[1][0].gens_reduced()[0]
if (pi^(k-1) - 1).valuation(fct[0][0]) > 1: return True
return False