C++求一个完数和它的因子

#include
using namespace std;
int main(){
int k;
cin>>k;
int i,j,sum=0;
for(i=1;i<1000;i++){
sum=0;
for(j=1;j
if((i%j)==0){
sum+=j;
}
}
if(sum==i){
cout<
cout<<"1";
for(j=2;j
if((i%j)==0){
cout<<" "<
}
cout<
}
}
return 0;
}

img

请问这段程序怎么改才对?总是显示答案错误

注意是求1-N的完数,不是1-1000

#include<iostream>
using namespace std;
int main(){
    int k;
    cin>>k;
    int i,j,sum=0;
    for(i=1;i<=k;i++){
        sum=0;
        for(j=1;j<i;j++){
            if((i%j)==0){
                sum+=j;
            }
        }
        if(sum==i){
            cout<<i<<" its factors are ";
            cout<<"1";
            for(j=2;j<i;j++){
                if((i%j)==0){
                cout<<" "<<j;}
            }
            cout<<endl;
        }
    }
    return 0;
}

for(i=1;i<=k;i++){
你输入k都没用上啊。1000只是题目中的一个测试用例而已