Java50道经典习题-程序9 求完数

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

 1 public class Prog9 {
 2     public static void main(String[] args) {
 3         int n=1000;
 4         compNumber(n);
 5     }
 6     //求完数
 7     private static void compNumber(int n) {
 8         System.out.println(n+"以内的完数:");
 9         for(int i=1;i<n+1;i++) {
10             int sum=0;
11             for(int j=1;j<i/2+1;j++) {
12                 if((i%j)==0) {
13                     sum+=j;
14                     if(sum==i) {
15                         System.out.print(i+" ");
16                     }    
17                 }
18             }
19         }
20     }
21 }
22 /*运行结果
23 1000以内的完数:
24 6 24 28 496
25 */

 

posted @ 2019-04-30 16:39  parkour高手  阅读(397)  评论(0编辑  收藏  举报