1 条题解
-
0
1
#include <bits/stdc++.h> using namespace std; // 返回 x 是否为完全数 bool f(int x) { if (x <= 1) return false; int res = 1; // 记录因子和 for (int i = 2; i <= x - 1; i++) if (x % i == 0) res += i; // 可以直接用 return res==x; 代替下面的判断 if (res == x) return true; else return false; } int main() { int n; cin >> n; for (int i = 2; i <= n; i++) if (f(i)) cout << i << "\n"; return 0; }
2
#include <bits/stdc++.h> using namespace std; //返回 x 的因子和 int f(int x) { if (x <= 1) return 0; int res = 1; for (int i = 2; i * i <= x; i++) if (x % i == 0) { int j = x / i; //找到对应的另一个因子 res += i; if (j != i) res += j; } return res; } int main() { int n; cin >> n; for (int i = 2; i <= n; i++) if (f(i) == i) cout << i << "\n"; return 0; }
- 1
信息
- ID
- 370
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 102
- 已通过
- 59
- 上传者