1樓:百小度
輸出效果如圖所示,當然你可以參照**修改。
option explicit
'判斷是否為完數
private function checkvalue(lngtmp as long) as boolean
dim lngindex as long, lngmax as long, lngresult as long
lngmax = lngtmp - 1
for lngindex = 1 to lngmax
if lngtmp mod lngindex = 0 then lngresult = lngresult + lngindex
next lngindex
if lngtmp = lngresult then
checkvalue = true
else
checkvalue = false
end if
end function
'輸出完陣列合方式
private function echovalue(lngtmp as long) as string
dim lngindex as long, lngmax as long, lngresult as long, strtmp as string
strtmp = ""
lngmax = lngtmp - 1
for lngindex = 1 to lngmax
if lngtmp mod lngindex = 0 then
strtmp = lngresult & "+" & lngindex
lngresult = lngresult + lngindex
strtmp = "完數 " & lngresult & "的組合方式為:" & strtmp
end if
next lngindex
echovalue = strtmp
end function
private sub form_load()
dim lngindex as long
for lngindex = 1 to 1000
if checkvalue(lngindex) = true then debug.print echovalue(lngindex)
next lngindex
msgbox "指定範圍內的完數輸出完畢"
end sub
2樓:諶敬
dim a%()
private sub form_click()print "1000以內的完數為:"
for i = 1 to 1000
if isws(i) then
print i; "=1";
for j = 1 to ubound(a)print "+"; a(j);
next j
end if
next i
end sub
function isws(m) as booleandim 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
end if
next i
if m = s then isws = trueend function
3樓:匿名使用者
dim a()
function isws(m) as booleanisws = false
dim j as integer, s as integer, x as integer
for j = 1 to m - 1
if m mod j = o then
redim preserve a(x)
s = s + j
a(x) = j
x = x + 1
end if
next j
if m = s then isws = trueend function
private sub form_click()dim i as integer
print "1000以內的完數"
for i = 1 to 1000
if isws(i) = true thentemp = ""
for x = 0 to ubound(a)if x = ubound(a) thentemp = temp & a(x)
else
temp = temp & a(x) & "+"
end if
next x
print i; "="; temp
end if
next i
end sub
如何用vb判斷完數
4樓:匿名使用者
**只少了一句s=0
private sub form_click()dim s, i, n
for n = 2 to 10000
s = 0 '少了這句,每次s都要清零,要不會把上次的結果也加進去就導致判斷失誤了
for i = 1 to n / 2
if n mod i = 0 then s = s + inext i
if s = n then print nnext
end sub
5樓:匿名使用者
private sub form_click()dim i%, c
print "1-10000以內的完全數為:"
for i = 1 to 10000
c = isws(i)
if c <> "" then
print i & "=" & c
end if
next i
msgbox "計算完畢!"
end sub
function isws(m as integer)dim i%, s%, d$
for i = 1 to m / 2
if m mod i = 0 then
s = s + i
d = d & "+" & i
end if
next i
if s = m then isws = right(d, len(d) - 1)
end function
vb找出1000以內的所有完數,輸出其因子和
6樓:匿名使用者
private sub command1_click()'完數定義:一個數如果正好等於它的因子之和,這個數就稱為完數。例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數"。
outputwannumber 1000
end sub
sub outputwannumber(byval n as integer)
dim i as integer
dim j as integer
dim s as integer
for i = 1 to n
s = 0
for j = 1 to i\ 2
if i mod j = 0 then s = s + jnext j
if s = i then print i & "是完數"
next i
end sub
用vb求完數 5
7樓:匿名使用者
'求完數
dim i, j, sum as longprint "1000以內的完數:"
for i = 5 to 1000 '1000以內的完數,最小的完數為6,所以從數字5開始求,以節省計算量!
sum = 1 '子因子1不用再求,直接賦予。
for j = 2 to int(i / 2) '子因子小於所求數的一半
if (i mod j) = 0 then sum = sum + j
next 'j
if i = sum then print i '輸出完數next 'i
8樓:匿名使用者
'form的事件使用錯誤 ,其它沒有錯誤,測試一下看看:
function isws(m, out2) as booleans = 1
out2 = "1"
isws = false
for i = 2 to (m - 1)
if m mod i = 0 then
s = s + i
out2 = out2 & "+" & iend if
next i
if s = m then isws = trueend function
private sub form_activate()for i = 2 to 1000
if isws(i, out1) then print i & "=" & out1
next i
end sub
程式設計輸入四位數倒置輸出vb的過程
int a textbox1.text,q 0,b 0,s 0,g 0 q a 1000 b a 100 10 s a 10 10 g a 10 千位 x.substring 0,1 百位 x.substring 1,1 十位 x.substring 2,1 個位 x.substring 3,1 v...
小學奧數題,這道小學奧數題怎麼樣給孩子講才容易懂 ?
第一次倒出 油的2 3 5千克 剰下 油的1 3 5千克。第二次倒出 油的1 3 3 4 5千克 3 4 3千克 油的1 4 27 4千克。兩次共倒出 油的2 3 5千克 油的1 4 27 4千克 油的11 12 7 4千克 87千克。87 7 4 11 12 93千克。甲的路程 全程的2 5 10...
華碩a450vb怎麼樣,我的是華碩A450VB型號,我加了一個4G記憶體條,為什麼顯示的還是4G記憶體呢
華碩a45cb系列的筆記本,價效比都很出色,尤其是asus 華碩 a450ei323vb sl 74f5dx2a 這款.華碩a450ei323vb sl採用了出色的硬體配置,英特爾酷睿i5 3230m處理器,配備gt740m顯示核心及高達2gb ddr3視訊記憶體,提供最佳的處理效能與最具吸引力的多...