直接上程序没啥难的!
#include <iostream>
using namespace std;
bool Perfect(int val)
{
int ret = 0;
if (val == 1)
{
return 0;
}
for (int i = 2; i <= val / 2; i++)
{
if (val % i == 0)
{
ret += i;
}
}
if (ret + 1 == val)
{
return true;
}
else
{
return false;
}
}
int main()
{
int inNum, count;
cin >> inNum;
if (inNum<0 || inNum>500000)
{
cout << "-1"<<endl;
return 0;
}
count = 0;
for (int i = 1; i <= inNum; i++)
{
if (Perfect(i))
{
count++;
}
}
cout << count << endl;
return 0;
}