VC++高手进...

来源:百度知道 编辑:UC知道 时间:2024/05/23 10:28:54
3. 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数及这些完数的和。
要求:
(1) 要求使用for循环
(2) 输出形式为:完数1+完数2...=和值
算法说明(下列算法仅供参考,学生可以采用其它算法):
(1) sum=0,m=2
(2) 当m<=1000时,反复执行(2.1)(2.2)(2.3)(2.4),否则转(3)
(2.1) k=m/2,n=0,j=1
(2.2) 当j<=k时,反复执行(2.2.1)(2.2.2) ,否则转(2.3)
(2.2.1) if j是m的因子 则执行n=n+j
(2.2.2) j++
(2.3) if m=n 则输出完数m, sum=sum+m
(2.4) m++
(3)输出m值

#include<iostream.h>
void main()
{
int sun=0;
for(int i=2;i<1000;i++)
{
int sum=1;
for(int j=2;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
if(sum==i)
{
cout<<i<<" ";
sun=sun+i;
}
}
}
}
cout<<"1000以内完数之和为:"<<sun<<endl;
}

直接问题目,一般没人回答的。。。