如果整数A的全部因子(包括1,不包括A本身)之和等于B;
且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。
求3000以内的全部亲密数。
// 遍历A从0到3000
for (int numA = 1; numA <= 3000; numA++) {
// 声明 A的因数和
int factorSumA = 0;
// 计算出A的所有因数并累加
for (int i = 1; i < numA; i++) {
if (numA % i == 0) {
factorSumA += i;
}
}
// 声明B为A的因数和
int numB = factorSumA;
// 声明B的因数和
int factorSumB = 0;
// 计算B的因数和并累加
for (int i = 1; i < numB; i++) {
if (numB % i == 0) {
factorSumB += i;
}
}
// 如果B的因数和等于A,就输出A、B
if (factorSumB == numA && numA <= numB) {
System.out.println("numB = " + numB + " numA = " + numA);
}
}