一个数如果恰好等于它的因子之和,这个数就是完数,例如 6 = 1 + 2 + 3,
    编程找出1000内所有的完数。

    什么是完数?
    一个数如果恰好等于它的因子之和,这个数就是完数。

    那么因子怎么找?
    10的因子?
    10 % 1 == 0
    10 % 2 == 0
    10 % 5 == 0
    不算10本身。
    10的因子:
    1 + 2 + 5 =8

    1. public class Homework06{
    2. public static void main(String[] args){
    3. // 1不属于完数,从2开始判断
    4. // 第一步:先从1到1000,每个数字都取出来
    5. for(int i = 2; i <=1000;i++){
    6. // 第二步:在这里可以拿到i,那么此时应该判断i是否是一个完数。
    7. // 这个数字有了,找这个数字的因子。
    8. // 假设现在这个数字就是6,i等于6
    9. int sum = 0;
    10. for(int j = 1; j <= i / 2; j++){
    11. //j取到的是:1 2 3 4 5
    12. //但实际上j取到哪就行了:1 2 3,取这几个数就行了。
    13. //取到一半就行。
    14. if(i % j == 0){
    15. //此时j就是因子。
    16. //记得将因子j追加,累计。
    17. sum += j
    18. }
    19. }
    20. //以上for结束表示:所有因子求和完毕了。
    21. if(i == sum){
    22. //i是一个完数
    23. System.out.println(i);
    24. }
    25. }
    26. }
    27. }