思路:
- 遍历m~n的所有数字,找出它的因数;
- 将因数求和;
- 符合条件输出。
知识点
- 复习因数求和知识(与之前不同的是,这里的因数包含1,所以初始化为1;
- 函数的调用.
代码实现
#include <iostream>
using namespace std;
//定义求一个整数因数和的函数
int yinshuhe(int n) {
int i, c = 1;
for(i = 2; i * i <= n; i++) {
if(n % i == 0) {
if(n / i != i) {
c = c + i + n / i;
} else {
c = c + i ;
}
}
}
return c;
}
int main() {
int m, n, i, j;
cin >> m >> n;
//遍历m~n的整数
for(i = m; i <= n; i++) {
j = yinshuhe(i);
//判断,符合条件就输出,此题要求数字之间用空格
if(j == i) {
cout << i <<" ";
}
}
return 0;
}