哦,我的程序我改了一下,已经出来答案了,但我还是不太确定对不对,我不知道1能不能算,下面是我改过后的程序:
#include <iostream>
using namespace std;
int main()
{
int i,j,sum=0;
for (i=1;i<1000;i++)
{
for (sum=0,j=1;j<=i/2+1;j++)
{
if (i%j==0)
{
sum+=j;
}
}
if (sum==i)
{
cout<<i<<",its factors are ";
for (j=1;j<=i/2+1;j++)
{
if (sum%j==0)
{
cout<<j<<' ';
}
}
cout<<endl;
}
}
return 0;
}
问题就出在for (sum,,j=1;j<i/2+1;j++),要给sum赋值,改为for (sum=0,,j=1;j<=i/2+1;j++)