课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565

【项目4:输出完数】(课本p86第20题)一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数。编程找出1000以内的所有完数。
提示:首先从2到1000构造循环控制变量为i的外层循环。每次循环中,利用内嵌的循环逐个地求出i的因子,并累加起来(为提高效率,可能的因子从1到i/2),如果因子和等于i,则说明是完全数,输出。然后继续循环,考察i+1……
说明:有些解答,如平台上提供的《c++程序设计经典例题》中用了数组。本题并不是非用数组才能做。类似题目还有关于水仙花数、回文数等,有精力可以自己玩玩。

#include <iostream>
#include<Cmath>
using namespace std;
int main( )
{int i,s,j;cout<<"2-1000之间的完数有:";for(i=2;i<=1000;i++){s=1; //1是任何数的因子,所以不再s=1,也使下一句可以从2开始for(j=2;j<sqrt(i);j++)   //正因为j从2开始,才有胆量让j到sqrt(i)if(i%j==0) s+=(j+i/j);  //加上j的同时,和j对称的那个因子(i/j)也被累加了//思考:如果j允许从1开始,上式会将i本身也累加上去if(i==s) cout<<i<<"  ";}cout<<endl;return 0;
}

运行结果:

另解:下面的程序也可以求解,考虑了效率,但不够彻底。

#include <iostream>
using namespace std;
int main( )
{int i,s,j;cout<<"2-1000之间的完数有:";for(i=2;i<=1000;i++){s=1; for(j=2;j<=i/2;j++)   if(i%j==0) s+=j;  if(i==s) cout<<i<<"  ";}cout<<endl;return 0;
}

转载于:https://www.cnblogs.com/hehe520/archive/2012/10/31/6142648.html

C++第10周项目4参考——完数相关推荐

  1. C++第10周项目2扩展之2参考——迭代求和

    课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2扩展之2(选做)]计算下面的式子,不能使用求幂函数pow() 式一 ...

  2. 2014秋C++第8周项目5参考-定期存款利息计算器

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,实践要求见http://blog.csdn.net/sxhelijian/a ...

  3. 数据结构上机实践第10周项目1 - 二叉树算法验证

    二叉树算法验证 本次实践主要是对于二叉树算法的验证,达成对于算法熟练掌握的目的. 实践所用的二叉树算法库点击此处可以参考(编译环境:VC++6.0) 一.层次遍历算法验证 验证具体要求如下: 实现二叉 ...

  4. 第10周项目6-贪财的富翁

    /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:刘畅 * 完成日期:2014年 1 ...

  5. C++第9周项目5参考——求一元二次方程的根

    课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目5:求一元二次方程的根]输入一元二次方程ax2+bx+c=0的各项系 ...

  6. 第10周项目1:程序填充与阅读(1)

    /* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Annpion.cpp *作者:王耀鹏 *完成日期:2014年10月31日 * ...

  7. 第10周项目 2.2 传字条

    /* *   copyright     (c)   2014   ,    烟台大学计算机学院 *   all  rights   reserved  . *   文件名称   :    texts ...

  8. 第10周项目2 传字条

    /* *   copyright     (c)   2014   ,    烟台大学计算机学院 *   all  rights   reserved  . *   文件名称   :    texts ...

  9. 第10周项目实践 线索二叉树的建立及遍历

    typedef struct node {     Elemtype date;     int ltag,rtag;     struct node lchild;     struct node ...

最新文章

  1. php企业网站源码安装教程,PHPSCUP企业建站系统v1.4 安装图文教程
  2. Spring Cloud Config对特殊字符加密的处理
  3. LSTM拟合正弦曲线代码(转载)
  4. HarmonyOS之AI能力·图像超分辨率
  5. 解决配置Ubuntu中vnc远程显示灰屏
  6. tgp饥荒服务器mod文件在哪,饥荒联机版中客户端mod文件夹在哪?注意不是服务器mod!...
  7. centos 下使用sublime
  8. JMetro版本8.6.11和11.6.11已发布
  9. 阿里云服务器内核编译升级
  10. java实现arp断网攻击,可攻击局域网内所有的主机
  11. win10开移动热点让手机使用上网
  12. 利用XML实现通用WEB报表打印(参考)
  13. python获取文件名中两条下划线之间的部分_Python 中的特殊双下划线方法
  14. 你好2019,我是全新的CPDA数据分析师课程
  15. spring-boot集成kafka(包含zookeeper和kafka的下载介绍)
  16. 链表在java中的应用_Java链表
  17. 20款电脑码字软件,网络作家实用软件珍藏,首推橙瓜码字
  18. 计算机基础:13、计算机CPU--运算器
  19. 全球及中国DIN 2353压缩配件行业研究及十四五规划分析报告
  20. 图像锐化(增强)和边缘检测

热门文章

  1. 安全审计产品发展现状与趋势分析
  2. linux中如何授权限,Linux系统下,为普通用户授权。
  3. java泛型 简书_一文带你认识Java泛型基础
  4. ISE中ChipScope软件使用
  5. MATLAB2013a的license过期的解决办法
  6. php基础知识(2),php基础知识学习(二)
  7. 2019/5/12 查漏补缺
  8. K8s 1.14 发布了,Release Note 该怎么读?
  9. Linux CentOS 7上安装极点五笔
  10. 网路游侠:日志审计系统与SOC的区别