/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:张浩
* 完成日期:2012 年11月2 日
* 版 本 号:v1.0
* 输入描述: int i ,n,s;
* 问题描述:球1000以内的完数
* 程序输出:略
* 问题分析: 了解完数的特点,利用循环找出所有1000以内的完数
* 算法设计:利用for语句。
*/
#include<iostream>
using namespace std;
int main()
{
int i,n,s;
for(n=2;n<=1000;++n){s=1;
for(i=2;i<n;++i){
if(n%i==0){
s+=i;
if(s==n)cout<<n<<"是完数"<<endl;}
}
}
return 0;
}
运行结果:
huo
心得体会;为什么将“s=1”放在if(n%i==0)后的括号内执行不可以?