C#里的完数的算法

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:05:18
要用程序找出1到1000的完数,我现在还想不出有什么好的算法,请各位给个详细点思路,不要只是单纯的代码,谢谢了!
完数就是3=1+2,6=1+2+3以此类推……最好能给一个详细的思路,谢谢了!!

int sumNumber = 0;//完数
for (int i = 1; i < 1000; i++)//从1000以内逐一增加
{
sumNumber += i;
//第一次加1,第二次用第一次加得的数的和加2,第三次用第二次加得的数的和加3.....
if (sumNumber <= 1000) Console.WriteLine(sumNumber);//如果完数大于1000,跳出
else break;
}

完数是什么?

这样的话,
你就从1开始加
1+2出来一个3
3+3出来一个6
6+4出来一个10
10+5出来一个15
。。。
一直到超过1000结束就可以了呗

#include <Stdio.h>
void main()
{
int m,i,s;
for(m=1;m<=1000;m++)
{
s=0;
for(i=1;i<m;i++)
if(m%i==0)
s=s+i;
if(s==m)
printf("%d,",s);

}

}
给你段c