亲密数对的查找算法
2008-11-19 15:51
309 查看
亲密数对的查找算法
/** * 亲密数对的查找算法。<br> * 如果a的因子和等于b ,b的因子和等于a ,且a≠b,则称a, b为亲密数对 * * @author 赵学庆 java2000.net */ public class T { public static void main(String[] args) { int num; for (int i = 2; i <= 1000; i++) { num = getDivNumber(i); if (num > i) { if (getDivNumber(num) == i) { System.out.println(i + "/" + num); } } } } public static int getDivNumber(int i) { int total = 1; int to = (int) Math.sqrt(i); for (int j = 2; j <= to; j++) { if (i % j == 0) { total += j; if (j != i / j) { total += i / j; } } } return total; } }/** * 亲密数对的查找算法。<br> * 如果a的因子和等于b ,b的因子和等于a ,且a≠b,则称a, b为亲密数对 * * @author 赵学庆 java2000.net */ public class T { public static void main(String[] args) { int num; for (int i = 2; i <= 1000; i++) { num = getDivNumber(i); if (num > i) { if (getDivNumber(num) == i) { System.out.println(i + "/" + num); } } } } public static int getDivNumber(int i) { int total = 1; int to = (int) Math.sqrt(i); for (int j = 2; j <= to; j++) { if (i % j == 0) { total += j; if (j != i / j) { total += i / j; } } } return total; } }
运行结果
220/284