亲密数的定义:
数A的真因数之和为B,若B的真因数之和也为A,则A与B为一对亲密数。
Factor为求真因数的方法,有定义可知若Factor(Factor(i)) == i则i与Factor(i)满足亲密数条件,为避免重复数对的出现,使用Factor(i) <= i进行限制。
public class Test2{
public static void main(String[] args){
int i;
for (i = 1; i <= 500; i++)
if (Factor(Factor(i)) == i && Factor(i) <= i)
System.out.println(Factor(i) + "," + i);
}
public static int Factor(int x){
int n = 0;
for (int i = 1; i <= x / 2; i++){
if (x % i == 0)
n += i;
}
return n;
}
}
输出结果:
6,6
28,28
220,284
496,496