#包括#包括#包括#包括#包括#包括#包括#包括#包括#包括#包括#包括使用命名空间std;//Conway_Positive_All.cc 2014年6月//g++-o Conway_Positive_All Conway_Ppositive_All.cc-lmvoid insert_primitive_reps(无符号int a,无符号int h,无符号int b,无符号int M,集*设置指针){cout<<setw(12)<<a<<setw(12)<<h<<setw12)<<b<<“insert_primitive_reps”<<endl;如果(a<=M){(*setPtr).插入(a);如果(b<=M){(*setPtr).插入(b);如果(a<=M-b&&h<=M-a-b){如果(a<=M-a-h)insert_primitive_reps(a,h+2*a,a+b+h,M,setPtr);如果(b<=M-b-h)insert_primitive_reps(a+b+h,h+2*b,b,M,setPtr);//注释:一旦a+b+h<=M,min(2a+h,2b+h)<=M}//如果a+b+h}//如果b}//如果是}//结束insert_primitive_repint IntSqrt(int i){//cerr<<“调用intsqrt with”<<i<<endl;如果(i<=0),则返回0;否则,如果(i<=3)返回1;否则,如果(i>=2147395600)返回46340;其他的{浮子r;r=1.0*i;r=平方英尺(r);int root=(int)ceil(r);while(root*root<=i)++根;while(root*root>i)--根;返回根;}}字符串字符串(int x){鸵鸟溪o;o<<x;返回o.str();}字符串分解(无符号整数i){字符串fac;fac=“=”;整数p=2;无符号int temp=i;如果(温度<0){温度*=-1;fac+=“-1*”;}如果(1==温度)fac+=“1”;如果(温度>1){int primefac=0;而(温度>1&&p*p<=温度){如果(温度%p==0){++普瑞法;如果(primefac>1)fac+=“*”;fac+=字符串(p);温度/=p;int指数=1;while(温度%p==0){温度/=p;++指数;}//当p为fac时if(指数>1){fac+=“^”;fac+=字符串(指数);}}//如果p是因子++p;}//当p如果(温度>1&&primefac>=1)fac+=“*”;如果(temp>1)fac+=字符串(temp);}//温度>1回归系数;}//系数化int main(int argc,char*argv[]){如果(argc!=5)cout<<“用法:./Conway_Positive_All A B C M”<<endl;其他{int a、b、c、discr;整数N,M;a=原子序数(argv[1]);b=原子序数(argv[2]);c=原子序数(argv[3]);M=原子(argv[4]);cout<<setw(12)<<atoi(argv[1]);int d=b*b-4*a*c;int droot=IntSqrt(d);如果(d<=0)cout<<“非阳性鉴别”<<d<<endl<<endl;如果(d==droot*droot)cout<<“平方判别式”<<d<<endl<<endl;如果(d>0&&d!=droot*droot){国际aa,bb,cc;而(a<=0|c>=0|b<=abs(a+c)){整数增量,cAbs;抗体=c;如果(cAbs<0)cAbs*=-1;δ=(b+droot)/(2*cAbs);如果(c<0)δ*=-1;aa=c;bb=2*c*δ-b;cc=c*δ*δ-b*δ+a;a=aa;b=bb;c=立方厘米;}//而不使用>0进行缩减cout<<setw(12)<<a<<setw12;int a_old=a;int b_old=b;int c_old=c;int goon=1;设置S;while(呆子){int newval=a+b+c;if(newval>0){//cout<<setw(65)<<b+2*a<<endl;insert_primitive_reps(a,b+2*a,newval,M,&S);//注释与符号b+=2*c;a=新值;}//newval>0else if(newval<0){//cout<<setw(5)<<-1*(b+2*c)<<endl;b+=2*a;c=newval;}//newval<0goon=(a!=a_old)||;}//当呆子cout<<endl<<endl<<“ALL表示高达”<<M<<endl<<endl的正整数;设置T;设置::迭代器iterU;for(iterU=S.begin();iterU!=S.结束()++iterU){无符号整数p=*iterU;//cout<<setw(12)<<p<<因子(p)<<endl;对于(int t=1;t*t<=M/p;++t)t插入(t*t*p);}for(iterU=T.begin());iterU!=T端()++iterU){无符号整数p=*iterU;cout<<setw(12)<<p<<因子(p)<<endl;}cout<<endl<<endl<<“ALL表示直到”<<M<<end1<<end1;cout<<setw(12)<<atoi(argv[1]);}//不方形}//其他argc返回0;}//g++-o Conway_Positive_All Conway_Ppositive_All.cc-lm