- 注册时间
- 2007-12-27
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 44870
- 在线时间
- 小时
|
发表于 2010-1-19 10:25:38
|
显示全部楼层
这下N=5和N=6的数目同12#一致了-
- N()=
- {
- 7
- }
-
- K()=
- {
- N()-2
- }
-
- BEGIN()=
- {
- 0
- }
-
- END()=
- {
- -1
- }
-
- OUTFILENAME()=
- {
- "/home/zdu/N7d.txt"
- }
-
- output()=
- {
- local(V,MM,RR,uu,f,v,v2,a,b,d);
- MM=M[K()];
- RR=R[K()];
- V=MM;
- c=c+1;
- if(c>=BEGIN()&&(END()<0||c<=END()),
- f=divisors(V);
- for(u=1,length(f),
- for(u2=u,length(f),
- v=f[u];v2=f[u2];
- if((v+v2)%RR!=0, next());
- if(gcd(v,v2)>1,next());
- d=(v+v2)/RR*(V/(v*v2));
- a=d*v;b=d*v2;
- if(a>=n[K()],
- n[K()+1]=a;
- n[K()+2]=b;
- write(OUTFILENAME(),n);
- )
- )
- )
- );
- if(c%100==0, print("process " c " lines"))
- }
-
- search(level)=
- {
- local(ll,uu,dd);
- if(level>=K(),
- output(),
- ll=floor(M[level]/R[level])+1;
- uu=floor((N()-level)*M[level]/R[level]);
- if(ll<=n[level],ll=n[level]);
- for(i=ll,uu,
- n[level+1]=i;
- M[level+1]=M[level]*i;
- R[level+1]=R[level]*i-M[level];
- dd=gcd(M[level+1],R[level+1]);
- M[level+1]=M[level+1]/dd;
- R[level+1]=R[level+1]/dd;
- A[i%4+1]=A[i%4+1]+1;
- search(level+1);
- A[i%4+1]=A[i%4+1]-1
- )
- )
- }
-
- search0()=
- {
- n=vector(N());
- M=vector(N());
- R=vector(N());
- A=vector(4);
- c=0;
- for(i=2,8,
- n[1]=i;
- R[1]=i-1;
- M[1]=i;
- A[i%4+1]=A[i%4+1]+1;
- search(1);
- A[i%4+1]=A[i%4+1]-1;
- );
- }
复制代码 |
|