数学问题——找“亲密数”

来源:互联网 发布:fcn caffe windows 编辑:程序博客网 时间:2024/06/07 00:27

一、数学背景介绍:假设有a、b两个数,若a的因子之和等于b,b的因子之和等于a,并且a不等于b,则称a和b是一对亲密数。

二、要求编写代码实现找出给定范围以内的亲密数。

package com.js.math;import java.util.Scanner;/** * 亲密数 * a的因子之和等于b,b的因子之和等于a * @author js * */public class ClosePair {public static void main(String[] args) {int a,m;int b;System.out.println("请输入最大范围:");Scanner scanner = new Scanner(System.in);if(scanner.hasNext()){m = scanner.nextInt();for(a=1;a<m;a++){for(b=1;b<a;b++){if(getResult(a)==b&&getResult(b)==a){System.out.println(a+"和"+b+"是一对亲密数...");}}}}//System.out.println(getResult(1595));//System.out.println(getResult(675));}public static int getResult(int a){int result = 0;for(int i =1;i<a/2+1;i++){if(a%i==0)result+=i;}return result;}}