求1000内的完数

//完数:一个数除了自己本身,所有的因子和等于本身的数。
//因子:一个数能够整除小于自己本身的数,这个被整除的数就是这个数的因子。
//例如:6=1+2+3
只求1000以内的完数
public class WanShu_YinZi {
  public static void main(String[] args) {
   System.out.print("1000以内的完数有:");
   for(int i=2;i<=1000;i++) {
    int sum=0;
    for(int k=1;k<i;k++) {
     if(i%k==0) {
     sum+=k;
     }
    }
    if(sum==i) System.out.print(i+" "); 
   }
  }
}

结果显示:
1000以内的完数有:6 28 496 
不仅求出1000以内的完数,而且输出每个完数的因子
public class WanShu_YinZi2 {
  public static void main(String[] args) {
   int i,k;
   System.out.println("1000以内的完数有:");
   for( i=2;i<=1000;i++) {
   int sum=0;
    for( k=1;k<i;k++) {
     if(i%k==0) {
     sum+=k;
     }
    }
    if(sum==i) {
     System.out.print(i+"是完数,且该完数的因子为:"); 
     for(k=1;k<i;k++) {
      if(i%k==0) 
      System.out.print(k+" ");
     }
     System.out.println();
    }
    }
   }
  }

结果显示:
1000以内的完数有:
6是完数,且该完数的因子为:1 2 3 
28是完数,且该完数的因子为:1 2 4 7 14 
496是完数,且该完数的因子为:1 2 4 8 16 31 62 124 248 
发布了163 篇原创文章 · 获赞 58 · 访问量 4150

猜你喜欢

转载自blog.csdn.net/qq_45696288/article/details/104862133