把```
while(cin)```
改成```while(cin>>s)```
,再把后面的```cin>>s```删了
改过来的代码是这样:
```cpp
#include<bits/stdc++.h>
using namespace std;
int yzh(int a){
int res=0;
for(int i=1;i*i<=a;i++){
if((a%i)==0){
if(i*i==a){
res+=i;
}else{
res+=i+a/i;
}
}
}
return res;
}
int main(){
int s;
while(cin>>s){
vector<int> a(0);
for(int i=0;i<s;i++){
if(yzh(i)==s){
a.push_back(i);
}
}
cout<<a.size()<<endl;
for(int i=0;i<a.size();i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
return 0;
}
```
by xlaser @ 2024-01-30 07:58:47