最佳答案
你的程序算法及输出都有问题,改好的参考:
#include
using namespace std;
int main()
{
int n, i, j, sum = 1, t = 0;
cin >> n;
for(i = 6; i <= n; i++) // 小于或等于 n 的所有完全数输出
{
for(j = 2; j < i; j++) //这里是i,不能是n
{
if(i % j == 0)
{
sum += j;
}
}
// cout << sum //这个不要输出
if(sum == i)
{
if(t == 0)
{
cout << i;
t++ ;
}
else //这里要用else
{
cout << " " << i;
}
}
sum = 1;
}
if(t == 0)
cout << 0 << endl; //若没有要输出一个0的
else
cout << endl;
return 0;
}
最佳答案由网友 whoami1978 提供