华为机试 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; } }