陳新龍
在神奇的數學王國中,一些特殊的數字有自己的專屬別稱,比如水仙花數、阿姆斯特朗數、回文數……你可以通過上網查閱找到這些數字中蘊含的秘密,并用程序快速找到它們。今天我就用Scratch來研究一下完全數。

所謂完全數,又稱完美數或者完備數,如果一個自然數恰好等于它本身以外的所有因子之和,那么這種數就叫做完全數。要認識完全數首先得理解因子這個概念,因子就是所有可以整除這個數的數,不包括這個數自身。而因數就是所有可以整除這個數的數且包括這個數自身。假如A*B=C(A、B、C都是整數)那么我們就稱A和B是C的因子,注意只有兩個因子都為整數時,此關系才成立。
6是最小的完全數,除去它自身的因子是1、2、3,三個因子1+2+3=6,剛好是該數的本身。而數字15的因子有1、3、5、15四個數字,除去15本身1+3+5=9,所以15不是完全數。現在了解了原理之后我們一起尋找1000以內的完全數吧。計算機求完全數最簡單的方法就是使用窮舉法,列出每個自然數,求出各因子的和,如果這個和等于該自然數,那么這個數就是一個完全數。

首先創建三個變量:“自然數”包括1-1000之間所有的自然數;“數字n”尋找每個自然數的因數過程中的除數,如果自然數能被數字n整除,那么數字n就是這個自然數的一個因數;“因子和”不包括它本身的所有因子的和。還要創建一個完全數列表用于存放找到的完全數。
整個程序采用雙重循環的結構,外層重復執行到自然數等于1000時跳出循環,代表自然數從1-1000取值的過程,內層循環用于尋找完全數的過程,在內層循環中加入判斷語句,如果自然數除以數字n的余數等于零(即整除時),將對應的因子進行累加。如果最終得出的因子和等于該自然數時說明我們找到了一個完全數,將結果添加到列表中。最終列表中的結果為6、28、496三個結果。如果我們耗費更長的時間,能找到完全數還有8128、33550336。截至2018年,相關研究者已經找到51個完全數。
其實在神奇的數學王國中還有很多類似完全數這樣有趣的數字,后期我也會繼續和大家分享更多有趣的內容包括北斗七星數、九九重陽數……