算法基础贴 传言的10000以内恋爱数求法 大手指出不足


import java.io.Console;

class LoveNumber{

 
 private int[] number=null;
 private Console cs=null;
 public LoveNumber(){
  
  this.number=new int[10000];
  this.cs=System.console();
  for(int i=1;i<10000;i++){
   
   int tmp=0;
   for(int j=1;j<i-1;j++){
    
    if(i%j==0){
     tmp=tmp+j;
    }
   }

   number[i]=tmp;

  }

  for(int i=2;i<10000;i++){
   int flag=0;
   for(int j=i+1;j<10000;j++){
    if(j==number[i]&&flag!=1){
     
     flag++;
    }

    if(j==number[i]&&flag==1){
     System.out.println(i+" "+j+" ");
    }

   }

   /*if(i%1000==0){
   * System.out.print("按回车键继续:");
   * cs.readLine();
   *}
   *
   *专门为window系列系统制作,模拟more操作*/
  }

 }


 public static void main(String[] argv){
  new LoveNumber();
 }

 

}

 








附:恋爱数的传说



有很多人问我220-284是什么意思,现在在这里系统的做一下介绍。

会做因子分解吗?
现在我们来做一道因子分解题
好,大家拿纸和笔出来,先把220的因子都算出来。
1、2、4、5、10、11、20、22、44、55、ll0、220。
你算对了吗?
然后扣除220本身,把这些因子加起来。得数是284。
然后把284的因子分解出来。
1、2、4、71、142、284。
同样地, 扣除284本身,把所有因子相加,得数是220。
看出来了吗?220的因子总和是284,284的因子总和是220。

这对数学是数学大师毕达哥拉斯发现的,命名为亲和数,也是现如今发现的亲和数中最小的一对。象征着亲密无间,知己。

渐渐的,这对数字有了另一个名字:恋爱数

你可能感兴趣的:(算法,J#)