如果整数A的全部因子(包括1,不包括A本身)之和等于B,而B的全部因子(包括1,不包括B本身)之和等于A,则称A和B是亲密数。求解3000以内的全部亲密数。
public class QinMiShu {
public static void main(String[] args) {
int[] num1=new int[3000];
for (int i = 2; i < 3000; i++) {
num1[i]=isOk(i);
}
for (int i = 1; i < num1.length; i++) {
if(num1[i]>=i&&num1[i]<3000){
if(num1[num1[i]]==i){
System.out.println(i+"\t"+num1[i]);
}
}
}
}
public static int isOk(int i){
int sum=0;
for (int j = 1; j <= i/2; j++) {
if(i%j==0){
sum+=j;
}
}
return sum;
}
}