Java编程.输出20-1000之间所有的亲密数.若A的因子和等于B,B的因子和等于A,且A≠B,则A和B互称亲密数

B的因子和等于A,且A≠B,则A和B互称为亲密数(求因子和时不包含1和本身)... B的因子和等于A,且A≠B,则A和B互称为亲密数(求因子和时不包含1和本身) 展开
 我来答
lyz_pp
2017-09-14 · TA获得超过553个赞
知道小有建树答主
回答量:474
采纳率:83%
帮助的人:368万
展开全部
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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式