求完数的一道题,帮忙看看哪错了?
/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.
编程找出1000以内的所有完数。 */
//2009--7--23
#include <iostream>
using namespace std;
#define N 1000
int main()
{
int i,n;
int sum = 0;
for(n = 2; n <= N; n++)
{
for(i = 1; i <= n - 1; i++)
{
if(n % i == 0)
{
sum += i;
}
}
if(sum == n)
{
cout << n << endl;
}
}
system("pause");
}