您的位置:首页 > 其它

第10周项目5输出1000以内的所有完数

2014-11-03 12:31 381 查看
问题及代码:

/* 
*Copyright (c)2014,烟台大学计算机与控制工程学院 
*All rights reserved. 
*文件名称:number.cpp 
*作    者:单昕昕 
*完成日期:2014年11月3日 
*版 本 号:v1.0 
* 
*问题描述:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数。编程找出1000以内的所有完数。
*程序输出:1000以内的所有完数。 
*/  
#include <iostream>
using namespace std;
int main()
{
    int i,k,sum;
    for(i=2; i<=1000; i++)      //1不算入一个完数。
    {
        sum=1;                 //1是任何数的一个因数。
        for(k=2;k<=i/2;k++)  //k<=i/2是要保证i%k能进行计算。

            if(i%k==0)
                sum+=k;
            if(sum==i)
                cout<<"1000以内的完数有:"<<sum<<endl;
    }
    return 0;
}




运行结果:





知识点总结:

要运用for语句嵌套。if单语句判断。



学习心得:

要特别注意括号内的要给定的条件,被那个k<=i/2玩坏了。。纠结了好久才想出来为什么出错。还是自己思维不够缜密,光想着大条件,没想清楚怎么才能满足计算的条件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: