|
PROG
|
(PARI) for(n=1, 1e5, a=(n-1)!%n^2; if((n-1)^2<a, print1(n", ")))
(PARI) is(n) = (n-1)^2 < lift(Mod((n-1)!, n^2)) \\ Felix Fröhlich, Jul 23 2017
(PARI) val(n, p) = my(r=0); while(n, r+=n\=p); r
is(n) = my(f = factor(n), r = Mod(1, n^2)); if(#f~ > 2, return(0), if(#f~==2, if(f[1, 1]!=2, return(0)))); forprime(p=2, n-1, r*=Mod(p, n^2)^val(n-1, p)); (n-1)^2 < lift(r) \\ David A. Corneth, Jul 23 2017
(Python)
def ok(n):
nn = n**2; f = 1%nn
for k in range(1, n): f = f*k%nn
return (n-1)**2 < f
(Python) # faster for initial segment of sequence
from math import factorial
def afind(limit, startk=1):
k = startk; kkprev = (k-1)**2; f = factorial(k-1)
while k < limit:
kk = k*k
if kkprev < f%kk: print(k, end=", ")
kkprev = kk; f *= k; k += 1
|