- 区间完数
- 题目描述
- 输入描述
- 输出描述
- 样例一
- 输入
- 输出
- 题目分析
- AC代码
区间完数
- 区间完数
时间限制:1秒
空间限制:64M
题目描述
如果一个整数等于其所有真因子之和,则该数字称为完数。例如,6=1+2+3,输入整数区间,输出区间(含边界)内所有的完数。不考虑0,负数或者其他特殊情况。
输入描述
输入为整型,空格分隔
输出描述
输出为整型,空格分隔
样例一 输入
1 500输出
6 28 496题目分析
这题仍然没有说数据范围,但是题目说“不考虑0,负数或者其他特殊情况”,那就暴力一波试试吧。
然后就过了…
AC代码#includeusing namespace std; #define mem(a) memset(a, 0, sizeof(a)) #define dbg(x) cout << #x << " = " << x << endl #define fi(i, l, r) for (int i = l; i < r; i++) #define cd(a) scanf("%d", &a) typedef long long ll; bool ok(int n) { if (n == 1) return false; int s = 1; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { s += i; if (n / i != i) { s += n / i; } } } return s == n; } int main() { int l, r; cin >> l >> r; for (int i = l; i <= r; i++) { if (ok(i)) { cout << i << ' '; } } return 0; }
每周提前更新菁英班周赛题解,点关注,不迷路
原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/124729118



