编写程序找出1000以内完数,并按格式输出

img

编写程序找出1000以内的完数,并按以下格式输出其因子:6,it's factors are 1,2,3
程序运行起来达不到效果是什么原因?
初学者求赐教,万分感谢

img

#include<iostream>
using namespace std;
int main()
{
    int s;
    cout<<"1000以内完数有"<<'\n';   //若一个数等于其因数之和,则为完数
    for(int i=1;i<=1000;i++)
    {
        s=0;                       //s值初始化
        for(int j=1;j<i;j++)       //求一个数的因数,若是则累加到s
        {
            if(i%j==0) {             //判断此时的j是否为i的因子
            s+=j;
            }
        }
        if(s==i){
            cout<<s<<",it's factors are"<<'\t';
             for(int k=1;k<i;k++)
        {
            if(i%k==0)
                   cout<<k<<'\t';
        }
        cout<<"\n";
        }
    }
    return 0;
}

能运行就说明代码没问题,结果有问题说明算法错了
主要是第三个for语句里的if语句导致没有输出

什么叫做 完数 ?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^