f: =proc(n)使用priqueue;局部p,x,Aprimes,v;
初始化(Aprimes);
p: =2;
当n mod p=0时,do p:=下一素数(p)od:
插入([-p^n,p,0],Aprimes);
做
v: =提取物(Aprimes);
x: =-v[1];
如果x mod n=1,则返回x fi;
如果v[3]<n,则
插入([v[1],v[2],v[3]+1],Aprimes);
p: =下一素数(v[2]);
当n模p=0时,dop:=下一素数(p)od;
x: =x*(p/v[2])^(n-v[3]);
插入([-x,p,v[3]],Aprimes);
fi;
od;
结束过程:
f(1):=2:
地图(f,[1..30]美元);
|