d(n)定义为n 的所有真因子(小于 n 且能整除 n 的整数)之和。
如果 d(a) = b 并且 d(b) = a, 且 a b, 那么 a 和 b 就是一对相亲数(amicable pair),并且 a 和 b 都叫做亲和数(amicable number)。
例如220的真因子是 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 和 110; 因此 d(220) = 284. 284的真因子是1, 2, 4, 71 和142; 所以d(284) = 220.
计算10000以下所有亲和数之和。
public class Test {
public static int totalNum(int n){
int sum = 0;
for(int i = 1; i< n ; i ++){
if(n%i == 0) sum += i;
}
return sum;
}
public static void main(String[] args) {
int sum = 0;
int temp ;
for(int i = 0 ; i<10000;i ++){
temp = totalNum(i);
if(i == totalNum(temp) && i != temp){
sum += i;
}
}
System.out.println(sum);
}
}