用Java编程找亲密数对 100

亲密数对是指这样的两个不等的自然数X与Y:X所有因子(除去1和自身X外)之和等于Y,同样Y所有因子之和等于X。如48与75就是一组亲密数对,编程求出并输出【2,1000】... 亲密数对是指这样的两个不等的自然数X与Y:X所有因子(除去1和自身X外)之和等于Y,同样Y所有因子之和等于X。如48与75就是一组亲密数对,编程求出并输出【2,1000】范围之内的所有亲密数对。 展开
 我来答
lhcatacgf
2015-03-21 · TA获得超过921个赞
知道小有建树答主
回答量:588
采纳率:100%
帮助的人:514万
展开全部
import java.util.*;
 
public class Main{
     
    public static void main (String [] args) {
     boolean [] found = new boolean[1001];
     int t;
     for (int i = 2; i < 1000; i++) {
     if (!found[i]) {
     t = find(i);
     found[i] = true;
     if (t <= 1000) found[t] = true;
     if (find(t) == i)
     System.out.printf("%d, %d\n", i, t);
     }
     }
    }
    
    private static int find (int n) {
     int result = 0;
     for (int i = 2; i < n; i++)
     if (n % i == 0)
     result += i;
     return result;
    }
    
}

 注意,此题中的亲密数定义似乎和传统的定义不一样,此题中是除去1和自身,而传统的定义是包括1。


我的输出是

48, 75

140, 195

追问
少很多对啊
追答
请说明一下应该有哪些,少了多少对。这个亲密数本来就没几对,程序应该也没错。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式