第12周实验报告1(1000以内的所有完数 )

た 入场券 2022-06-14 03:38 275阅读 0赞
  1. 12周报告1
  2. 实验目的:学会使用循环控制语句解决实际问题,并强化注重效率的观念
  3. 实验内容:用循环控制语句编写程序,完成表达式的计算
  4. * 程序头部注释开始
  5. * 程序的版权和版本声明部分
  6. * Copyright (c) 2011, 烟台大学计算机学院学生
  7. * All rights reserved.
  8. * 文件名称: 1000以内的所有完数
  9. * 者: 臧鹏
  10. * 完成日期: 2011 11 09
  11. * 号:
  12. * 对任务及求解方法的描述部分
  13. * 输入描述:无
  14. * 问题描述:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123,再如8的因子和是7(即1+2+4),8不是完数。编程找出1000以内的所有完数。
  15. * 程序输出:1000以内的所有完数
  16. * 问题分析:首先从21000构造循环控制变量为i的外层循环。每次循环中,利用内嵌的循环逐个地求出i的因子,并累加起来(为提高效率,可能考虑因子的对称性,即j为小于sqrt(i)的因子,则一定有i/j也是因子),若累加和与i相等,则i是完全数,输出。然后继续循环,考察i+1……
  17. * 算法设计:……
  18. * 程序头部的注释结束
  19. #include < iostream >
  20. using namespace std;
  21. int main()
  22. {int i,n,sum;
  23. for(i=2;i<1000;i++)
  24. {sum=0;
  25. for(n=1;n<=i/2;n++)
  26. {
  27. if((i%n)==0)
  28. sum=sum+n;
  29. }
  30. if(i==sum)
  31. cout << i << "是一个完数" << endl;
  32. }
  33. return 0;
  34. }

0_1330101097eH3x.gif

发表评论

表情:
评论列表 (有 0 条评论,275人围观)

还没有评论,来说两句吧...

相关阅读