题目描述:
键盘输入 N ,N 在2至 2000之间,求 2 至 N 中的亲密数对,就是A的因子和等于B,B的因子和等于A ,且 A≠B 。
如 48 和 75是亲密数对。48 的因子和为2+3+4+6+8+12+16+24=75 ,而 75的因子和3+5+15+25=48 。
输入:
只有一行,为一个整数 N ( 2≤N≤2000 )。
输出:
输出若干行,每行两个整数(用一个空格隔开)。
样例输入:
200
样例输出:
48 75
75 48
140 195
195 140
样例输入:
150
样例输出:
48 75
75 48
参考程序 :
#include <bits/stdc++.h>
using namespace std;
int factorSum(int num) {
int result = 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
result += i;
if (i != num / i) {
result += num / i;
}
}
}
return result;
}
int main() {
int n;
cin >> n;
for (int a = 2; a <= n; a++) {
int b, t;
b = factorSum(a);
if (b > n) continue;
t = factorSum(b);
if (t == a && a != b) {
cout << a << " " << b << endl;
}
}
return 0;
}
看到这里了,来个三连吧,谢谢!好人一生平安!
标签:1140,48,int,题解,数对,样例,因子,75 From: https://blog.csdn.net/liunian_curry/article/details/139721281