(PARI)
strong_check(p,base,e,r)=我的(tv=估价(p-1,2));tv>e&&Mod(基本,p)^((p-1)>>(tv-e))==r;
strong_fermat_psp(A,B,k,base)=A=最大值(A,vecprod(质数(k)));(f(m,l,lo,k,e,r)=我的(列表=列表());my(hi=sqrtnint(B\m,k));如果(lo>hi,返回(列表));如果(k==1,对于步长(p=升力(1/Mod(m,l))),hi,l,如果(isprimepower(p)&&gcd(m*base,p)==1&strong_check(p,base,e,r),my(n=m*p);如果(n>=A&&(n-1)%znorder(Mod(base,p))==0,listput(list,n))),则表示prime(p=lo,hi,base%p==0&&next;strong_check(p,base,e,r)||next;my(z=znorder(Mod(base,p)));gcd(m,z)==1||下一个;my(q=p,v=m*p);而(v<=B,list=concat(list,f(v,lcm(l,z),p+1,k-1,e,r));q*=p;Mod(base,q)^z==1|| break;v*=p));列表);我的(res=f(1,1,2,k,0,1));对于(v=0,logint(B,2),res=concat(res,f(1,1,2,k,v,-1));vecsort(集合(res));
T(n,k)=如果(n<2,返回());my(x=vecprod(素数(k)),y=2*x);而(1,my(v=strong_fermat_psp(x,y,k,n));如果(#v>=1,返回(v[1]));x=y+1;y=2*x);
打印表(n,k)=对于(x=2,n,对于(y=2,k,打印1(T(x,y),“,”));打印(“”);
对于(k=2,9,对于(n=2,k,print1(T(n,k-n+2)“,”));
|