什么是完數呢?完數,也叫完美數,是指一個數等于它的因數之和,除自身外其余的因數加起來等于它本身。比如6就是一個完數,因為6的因數是1、2、3,而1+2+3=6。在100以內,有如下這些完數:
6 28 496
我們的任務是要把這些完數加起來,得到它們的和。想到這個問題,我們可以用Java來實現。首先,我們應該先寫一個方法,來判斷一個數是否為完數。這個方法的思路就是,對于一個數x,枚舉它從1到x-1的所有因數,如果因數相加等于x,那么就說明x是完數。
public static boolean isPerfectNumber(int x) { int sum = 0; for (int i = 1; i< x; i++) { if (x % i == 0) { sum += i; } } return sum == x; }
有了這個方法,我們就可以在main函數中調用它,來求出100以內的完數之和了。具體的實現如下:
public static void main(String[] args) { int sum = 0; for (int i = 1; i<= 100; i++) { if (isPerfectNumber(i)) { sum += i; } } System.out.println(sum); }
這段代碼的思路很簡單,就是從1到100遍歷所有的數,如果某個數是完數,就把它加起來。最后打印出這些數的和。如果你運行這段代碼,就可以得到496+28+6=530
,即100以內所有完數的和是530。