(C)
#包括<stdio.h>
#包括<stdlib.h>
#包括<math.h>
#定义TOP(1内存<<32)//内存使用率:0.5 Gb
整型main(){
无符号长long i,j,p,t,r;
无符号字符*c=(无符号字符*)malloc(TOP/8);
memset(c,0,TOP/8);
对于(printf(“1,”),i=1;i<顶部;i+=2)
如果((c[i>>4]&(1<<(i>>1)&7))==0){
对于(p=i+(i==1),j=p*p;j*=p){
t=j-1;
r=平方英尺(t*2);
如果(r*(r+1)==t*2)打印f(“%llu,”,j);
双k=(双)j)*(双)p);
如果(k>=((双)(1ULL<<62)*4.0))断裂;
}
如果(i>1)对于(j=i*i>>1;j<TOP;j+=i)c[j>>3]|=1<<(j&7);
}
//对输出进行排序
返回0;
}