AcWing 725. 完全数
原题链接
中等
作者:
nanchen
,
2021-02-10 11:14:17
,
所有人可见
,
阅读 258
C++ 代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
long long x;
cin >> n;
while(n --)
{
long long sum=0;
cin >> x;
for(int i = 1; i <= sqrt(x); i ++) //i若是x的约数,则x/i也是约数。则 i的平方 <= x
{
if(x % i == 0)
{
if(i < x) sum += i; //除了本身以外的其他所有约数的和如果等于该数 1不是完全数
if(x/i < x) sum += x / i; // x/i不能等于本身
}
}
if(sum == x)
cout << x << " is perfect" << endl;
else
cout << x << " is not perfect" << endl;
}
return 0;
}