Java基础50题test9—求完数

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

 1 /*
 2  * 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6=1+2+3.编程找出 1000 以内的所有完数。 
 3  * 
 4  * 本题的关键是求出选取数值i的因子,即从1到i-1范围内能整除i的数,看某一个数j是否为i的因子,
 5  * 可利用语句if(i%j==0)进行判断,求某一个数的所有因子,需要在1到i-1范围内进行遍历,同样
 6  * 釆用循环实现。因此,本题从整体上看可利用两层循环来实现。外层循环控制该数的范围2?n;内层循
 7  * 环j控制除数的范围为1?i,通过i对j取余,是否等于0,找到该数的各个因子
 8  */
 9 public class Test9{
10 
11     public static void main(String[] args) {
12         int s = 0;
13         for(int i = 2;i<1000;i++)
14         {
15             s=0;
16             for(int j=1;j<i;j++)
17             {
18                 if(i%j==0)
19                     s+=j;//因数之和
20             }
21             if(s==i)
22             {
23                 System.out.println(i);
24             }
25         }
26 
27     }
28 
29 }

猜你喜欢

转载自www.cnblogs.com/zynevergiveup12/p/11145409.html