//2.2-----------------------------------------------------这个比较简单是到12的阶乘和:1!+2!+3!+4!+...+12!。int a=1,sum=0;for(int i=1;i<=12;i++){ a*=i; sum+=a;} cout<<"到12的阶乘和为"<<sum<<endl;//--------------------------------------------------------//2.3-----------------------水仙花数:三位数且各位数字立方和等于该数本身/*int m;cout<<"水仙花数为;"<<endl; for(int i=1;i<=9;i++){ for(int j=0;j<=9;j++){ for(int k=0;k<=9;k++){ m=100*i+10*j+k; if(m==(i*i*i+j*j*j+k*k*k)) cout<<m<<endl; } } }*///---------------------------153,370,371,407-----------------------------//2.4------------------------1000以内所有的完数,一个数恰好等于它的包括1在内的所有不同因子之和(不包括他本身)-----------------------------/*int yinzi,sum=0; for(int i=2;i<=1000;i++){ sum=0; for(int j=1;j<=i/2;j++){//j到1/2处就可以了,再高也不会有因子了:》 if(i%j==0) yinzi=j; else yinzi=0; sum+=yinzi;// cout<<sum<<" "<<yinzi<<" "; } if(sum==i) cout<<"1000以内的完数:"<<i<<endl; }*///----------------------------这个题开始没看懂,搜了一番,觉得这样循环次数挺多的,但也没有好办法----------------------------//2.5-------------------------3位的素数,且对称;如101----------------------------int sign,x; double sqrtm; for(int i=1;i<=9;i+=2){//尾数为2的为偶数,可以排除 for(int j=0;j<=9;j++){//中间位数 sign=1; x=100*i+10*j+i; sqrtm=sqrt(x*1.0);// cout<<sqrtm<<" "; for(int l=3;l<=sqrtm;l+=2){//是否为素数,剔出了偶数因子,和大于平方根的因子 if(x%l==0){ sign=0; break; } } if(sign==1){ cout<<"3位的对称素数为"<<x<<endl; } } }//-----------------------------------求素数的方法有很多种,选用一种自己容易理解的,相对简单的变了一下---------------------//2.6-------------------------------贪吃的猴子:每天吃掉所剩桃子的一半又多一个,已知第十天只剩了1个,求原总共多少桃子?----------------------/*int m=1;for(int i=9;i>=1;i--){ m=(m+1)*2; cout<<"第"<<i<<"天猴子有"<<m<<"个桃子,吃掉了"<<m/2+1<<"个桃子"<<endl;}*///--------------------------------------------------------