(PARI)g(Q)={my(V=Vec(Q),D=Set(V),D=#D);如果(D==4,返回(3*f[D[1]]*f[D[2]]*f[D[3]]*f[D[4]]));
如果(d==1,则返回((f[d[1]]^4+2*f[d[1]]^3+3*f[D1]]^2+2*f[1]])/8);
my(k=1,m=#select(x->x==D[k],V),t);而(m==1,k++;m=#选择(x->x==D[k],V));t=D[1];D[1]=D[k];D[k]=t;
如果(d==3,则返回(f[d[1]]*f[d[2]]*f[d[3]]*(3*f[d[1]]+1)/2);
如果(m==3,返回(f[D[1]]^2*f[D[2]]*(f[D1]]+1)/2);
((3*f[D[2]]^2+f[D[2])*f[D[1]]^2+(f[D[2]]^2+3*f[D[2])*f[D[1])/4};
seq(max_n)={my(s,a=向量(max_n),U);f=向量(max_n);f[1]=1;
对于(j=1,max_n-1,如果(j%100==0,打印(j));f[j+1]=1/j*总和(k=1,j,sumdiv(k,d,d*f[d])*f[j-k+1]);
对于(n=4,max_n,s=0;对于部分(Q=n,如果(Q[4]>Q[3])&&(Q[3]-1>Q[2]),
U=U/(f[Q[4]+1]*f[Q[3]-1])*f[Q[4]*f[Q[3]],U=g(Q));s+=U,
[1,n],[4,4]);a[n]=s;如果(n%100==0,打印(n“:”s));[4..max_n]};