#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;
}
请问这段程序怎么改才对?总是显示答案错误
注意是求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只是题目中的一个测试用例而已