VB 計算1000以內的完數並輸出它們的組合

2021-08-19 10:02:11 字數 949 閱讀 4077

如果乙個整數的所有因子(包括1,但不包括本身)之和與該數相等,則稱這個數為完數。例如6=1+2+3,所以6是乙個完數。編寫乙個函式isws(m)判斷m是否為完數,函式的返回值是邏輯型。主調程式顯示1000以內的完數,如圖所示。

判斷乙個數m是否是完數,演算法思想是:將m依次除以1~m/2,如果能整除,就是m的乙個因子,進行累積;迴圈結束,若m與累加因子之和相等,m就是完數。

這裡我偷了個懶沒畫list,大家可以參照我的改一下

dim a%()
private

sub form_click()

print "1000以內的完數為:"

for i = 1

to1000

if isws(i) then

print i; "=1";

for j = 1

toubound(a)

print "+"; a(j);

next j

print

endifnext i

endsub

function isws(m) as

boolean

dim s%

s = 0

for i = 1

to m \ 2

if m mod i = 0

then

redim

preserve a(j)

a(j) = i

j = j + 1

s = s + i

endifnext i

if m = s then isws = true

endfunction

找1000以內的完數

完數,是一些特殊的自然數,它所有的真因子 即除了自身以外的因子 的和,恰好等於它本身。所以這裡說明一下,1不是完數,因為1只有自身這乙個因子 第乙個完全數是6,第二個完全數是28,第三個完全數是496,後面的完全數還有8128 33550336等等。所以程式迴圈直接從數字2開始判斷 及執行結果如下 ...

如何找出 1000 以內的 完數

如果乙個數恰好等於它的因子之和,那麼這個數就被稱為 完數 如 6 1 2 3。程式設計找出 1000 以內的所有 完數 外層迴圈 998 次,每次迴圈得到的 i 傳入下個迴圈內,內部迴圈求解出符合 i 整除 k 等於 0 的數,如果能夠整除,那麼說明 k 是 i 的乙個因子,則用 sum 累加,直到...

程式設計找出1000以內的所有完數

關鍵檔案 homework2.cpp 定義控制台應用程式的入口點。程式設計找出1000以內的所有完數 注1 乙個數如果恰好等於它的因子之和,這個數就稱為 完數 例如6 1 2 3.注2 因子即是約數,即可以整除這個數的數 注3 完全數 perfect number 又稱完美數或完備數,是一些特殊的自...