两个数a和b,a的所有除本身以外的因数之和等于b,b的所有出本身以外的因数之和等于a,则称a,b是一对亲和数.
例如,220和284就是一对亲和数.
关于输入
一个正整数n,1<=n<=100000
关于输出
所有亲和数对于a,b满足a,b均小于等于n
每个亲和数对占一行,两个数之间用一个空格隔开,较小数在前,较大数在后
对于多个亲和数对,以较小数递增的顺序输出他们
#include <stdio.h>
#include <iostream>
using namespace std;
long int sum[100001] = { 0 };
int main() {
long int n = 0;
scanf("%ld", &n);
long int i = 0;
long int j = 0;
long int a = 0;
long int b = 0;
for (a = 0; a <= n; a++) {
for (i = 1; i < a; i++) {
if (a % i == 0)sum[a] += i;
}
}
for (a = 1; a <= n; a++) {
for (b = 1; b <= n; b++) {
if (a == sum[b]&&b==sum[a]&&a<b) {
cout << a<<" " << b << endl;
}
}
}
return 0;
}