Java 求3000以内亲密数

如果整数 A 的全部因子(包括 1,不包括 A 本身)之和等于 B,且整数 B的全部 因子包括 1,不包括 B 本身)之和等于 A,则称整数 A,B 是一对亲密数。


求 3000 以内的全部亲密数。


public class QinMiShu {
    //求int a的因子
    public static int QQ(int a){
        int sum=0;
        for (int i = 1; i < a; i++) {
            if (a%i==0)
                sum+=i;

        }
        return sum;
    }
    public static void Q(){
        int sum=0;
        //由题目可知:a的因子和的因子和等于a
        //从3000个数中选出 因子(因子(i))=i的数
        for (int i = 0; i <= 3000; i++) {
            //a的因子和的因子和等于a
            if(QQ(QQ(i))==i&&QQ(i)<i)//QQ(i)<i,筛选出前后互换位置的组合
                System.out.println("(" + i + "," + QQ(i) + ")");

        }

        }

    public static void main(String[] args) {
        //调用Q
        Q();
    }
    }
上一篇:安装 Windows Server 2012


下一篇:Java 冒泡排序