Java编程.输出20-1000之间所有的亲密数.若A的因子和等于B,B的因子和等于A,且A≠B,则A和B互称亲密数
1个回答
展开全部
public static void main(String[] args) {
for(int i = 20; i <= 1000; i++) {
int pair = intimateNumber(i);
if (pair > i && intimateNumber(pair) == i) {
System.out.println(i + ", " + pair);
}
}
}
public static int intimateNumber(int n) {
if(n <= 0) {
return -1;
}
int squareRoot = (int)Math.floor(Math.sqrt(n));
int result = 0;
for(int i = 2; i <= squareRoot; i++) {
if(n % i == 0) {
if(i * i != n) {
result += i + n / i;
} else {
result += i;
}
}
}
return result;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询