(PARI)Korselt(n,f=因子(n))=对于(i=1,#f[,1],如果(f[i,2]>1||(n-1)%(f[i,1]-1),返回(0));1
a(n)=我的(p=2,f);对于素数(q=3,默认(素数极限),对于步长(k=p+2,q-2,2,f=因子(k));如果(vecmax(f[,2])==1&#f[,2]==n&&Korselt(k,f),返回(k));p=q)
(PARI)
carmichael(A,B,k)=A=最大值(A,vecprod(素数(k+1))\2);(f(m,l,lo,k)=我的(列表=列表());my(hi=sqrtnint(B\m,k));如果(lo>hi,返回(列表));如果(k==1,lo=最大值(lo,ceil(A/m));my(t=升程(1/Mod(m,l)));而(t<lo,t+=l);对于步(p=t,hi,l,if(isprime(p),my(n=m*p));if((n-1)%(p-1)==0,listput(list,n))),对于prime(p=lo,hi,if(gcd(m,p-1)==1,list=concat(list),f(m*p,lcm(l,p-1,p+1,k-1)));列表);向量排序(Vec(f(1,1,3,k)));
a(n)=如果(n<3,return());my(x=vecprod(素数(n+1))\2,y=2*x);而(1,my(v=carmichael(x,y,n));如果(#v>=1,返回(v[1]));x=y+1;y=2*x); \\丹尼尔·苏图2023年2月24日