21-2 bool函数
#include<iostream>
#include<stack>
using namespace std;
const int N=11000;
int n;
bool st[N];
bool ifwanmei(int n)
{
stack<int>s;
s.push(1);
for(int i=2;i<n;i++)
{
if(n%i==0 && (!st[i]) && (!st[n/i]))
{
s.push(i),s.push(n/i);
st[i]=true,st[n/i]=true;
}
}
for(int i=1;i<n;i++) st[i]=false;//别忘了恢复
int sum=0;
while(!s.empty())
{
sum+=s.top();
s.pop();
}
if(n==sum) return true;
else return false;
}
int main()
{
cin>>n;
if(ifwanmei(n))
cout<<"true"<<endl;
else cout<<"false"<<endl;
for(int i=2;i<=10000;i++)
{
if(ifwanmei(i))
cout<<i<<" ";
}
return 0;
}