题解 | #完全数计算#
完全数计算
http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
这才是简单题该有的样子好吗!!表达式求值是什么东西!!!(菜狗言论)
/*HJ56完全数计算
完全数(Perfect number),又称完美数或完备数,
它所有的真因子(即除了自身以外的约数)的和
(即因子函数),恰好等于它本身。
例如:28,它有约数1、2、4、7、14、28,
除去它本身28外,其余5个数相加,1+2+4+7+14=28。*/
#include<iostream>
#include<stack>
using namespace std;
int main()
{
int n;
int num=0;
int t=0;
stack<int> a;
cin>>n;
while(n)
{
num=0;
for(int i=1;i<(n);i++)
{
if(n%i==0) a.push(i);
}
while(!a.empty())
{
num+=a.top();
a.pop();
}
if(num==n)
{
t++;
// cout<<n<<" ";
}
n--;
}
cout<<t;
}