题解
【基础】求完全数的个数
1 条题解
-
0
解题思路
枚举每个数,并用成对因数的方法求真因数和,再统计完全数个数。
参考代码
// 先读入题目给出的输入数据。 // 用简单的循环完成题目要求。 #include <iostream> using namespace std; int main() { int n, cnt = 0; cin >> n; for (int a = 2; a <= n; a++) { int sum = 1; for (int b = 2; b * b <= a; b++) { // 因数 b 和 a/b 要一起加入,避免漏算。 if (a % b == 0) { sum += b; if (b != a / b) sum += a / b; } } if (sum == a) cnt++; } cout << cnt << endl; return 0; }复杂度分析
代码只使用了简单变量、数组、循环和判断。时间复杂度根据题目的枚举或扫描过程计算,额外空间主要是输入数组,空间复杂度为 O(n)。
- 1