分类：电脑/网络-程序设计-C/C++
问题：两道C++计算题！麻烦大虾们帮帮忙！1题：一个数如果恰好等于它的 
1题：一个数如果恰好等于它的因子之和，这个数就称为“完数”。例如6=1＋2＋3.编程找出1000以内的所有完数。并按下面格式输出其因子：6,s factors are 1,2,32题：用迭代法求x=√a(是根号2）,要求两次求出的差小于10-5（十的负五次方）
回答：1：完数  for (int num = 1; num <=1000; num++)  //循环，从1到1000      {    int sum = 0;  //累计各因子的和    char Tmp[512]={0};  //包含因子的格式化字符串    for (int i = 1;i<num;i++)  //第一个因子    {      for (int j = i;j<=num;j++)  //第二个因子      {        if (i*j == num)  //确定i,j是否是此的因子        {          sum += i;  //累计因子和          sprintf(szTmp,"%s,%d",szTmp,i);  //格式化因子输入          if(j != num)  //因子不能为数的本身          {            sum += j; //累计因子和            sprintf(szTmp,"%s,%d",szTmp,j); //格式化因子输入          }        }      }    }    if (sum == num)  //如果各因子和等于这个数，则输出      printf("%d,its factors are %s\r\n",num,szTmp+1);  }2题：用迭代法求x=√a(是根号2）,要求两次求出的差小于10-5（十的负五次方） int main(int argc, char* argv[]){  bool bResult = true;  //状态变量  double x,y;  x = sqrt(2);      while(bResult)  {    y = sqrt(x);    if(x-y < 0.00001)  //符合条件则打印    {      bResult = false;      printf("x=%f\r\n",x);    }    x = y;  //将y付给x，继续循环  }  return 0;}