您的位置:首页 > 其它

亲密数对的查找算法

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: