//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;
}*/
//--------------------------------------------------------