华为机试 HJ56题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
#include <iostream>
#include <cmath>
using namespace std;
// 是否是完備數
bool IsWanBeiShu(int num)
{
bool bResult = false;
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
bResult = true;
}
return bResult;
}
int GetWanBeiShuCount(int n)
{
int count = 0;
for (int i = 1; i < n; i++) {
if (IsWanBeiShu(i)) {
count++;
}
}
return count;
}
int main() {
int n;
int count = 0;
int sum = 0;
while (cin >> n) { // 注意 while 处理多个 case
cout << GetWanBeiShuCount(n) << endl;
}
}

