上机内容:用循环语句完成累加
上机目的:学会循环语句的使用
/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:徐凯旋
* 完成日期:2012 年 11 月 1 日
* 版 本 号:v1.0
*
* 输入描述: 无
* 问题描述:编程找出1000以内的所有完数
* 程序输出:2-1000之内的完数有
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
#include<Cmath>
using namespace std;
int main( )
{
int i,s,j;
cout<<"2-1000之间的完数有:";
for(i=2;i<=1000;i++)
{
s=1;
for(j=2;j<sqrt(i);j++) //此处开平方意为求出i的最大因数,避免重复取值;然后自2开始不断累加直到j;j为何不从1开始取值,因为s取值为1
if(i%j==0) s=s+(j+i/j); //若i能被j整除,则j为其因子;
if(i==s)
cout<<i<<" ";
}
cout<<endl;
return 0;
}
运行结果:
心得体会:
耐心理清思路,真相往往就是隔着一层窗户纸。