1.求某兩數之最大公因數?最小公倍數?或互質
例:12.28的最大公因數是4.最小公因數是84
例:12.19是互質
2.阿姆斯壯數(abc=a的3次方+b的3次方+c的3次方時.或abcd=a的4次方+b的4次方+c的4次方+d的4次方時.則此數稱為阿姆斯壯數)
例:印出100-1000之間的阿姆斯壯數有:153、370、371、407
2005-09-27 17:09:02 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
1.求某兩數之最大公因數?最小公倍數?或互質
例:12.28的最大公因數是4.最小公因數是84
例:12.19是互質
ia = 11
ib = 24
a = ia: b = ib
If a < b Then x = a: a = b: b = x
Do
r = a Mod b
If r <> 0 Then a = b: b = r
Loop Until r = 0
Debug.Print "GCD=" & b, "LCM=" & ia * ib / b
2.阿姆斯壯數(abc=a的3次方+b的3次方+c的3次方時.或abcd=a的4次方+b的4次方+c的4次方+d的4次方時.則此數稱為阿姆斯壯數)
例:印出100-1000之間的阿姆斯壯數有:153、370、371、407
For i = 100 To 999
a = i \ 100
b = (i Mod 100) \ 10
c = i Mod 10
If i = a ^ 3 + b ^ 3 + c ^ 3 Then Debug.Print i,
Next
Debug.Print
答案是 153 370 371 407
For i = 1000 To 9999
a = i \ 1000
b = (i Mod 1000) \ 100
c = (i Mod 100) \ 10
d = i Mod 10
If i = a ^ 4 + b ^ 4 + c ^ 4 + d ^ 4 Then Debug.Print i,
Next
Debug.Print
答案是 1634 8208 9474
2005-09-28 07:51:24 · answer #1 · answered by Sean 5 · 0⤊ 0⤋
第一題我想網路一堆高手都有解答^^只要搜尋
VB 最小公倍數
VB 最大公因數
都會有一堆程式碼在此就不獻醜了
因為2.程式碼比較短且簡單粉多,網路上也不多,小弟就獻醜一下
'以下直接複製至VB上即可執行
Private Sub Form_Load()
Dim Num#
Dim YesNum$() '儲存阿姆斯壯數之陣列
Dim StartNum#, EndNum#, PrintStr
ReDim YesNum$(1 To 1)
StartNum# = 100
EndNum# = 1000
For Num# = StartNum# To EndNum#
'檢查是否為阿姆斯壯數
Check Num#, YesNum$()
Next
If Trim$(YesNum$(1)) <> "" Then
PrintStr = "印出 " & CStr(StartNum#) & "-" & CStr(EndNum#) & " 之間的阿姆斯壯數有:"
For Num# = 1 To UBound(YesNum$())
PrintStr = PrintStr & YesNum$(Num#) & "、"
Next
PrintStr = Left(PrintStr, Len(PrintStr) - 1)
Debug.Print PrintStr
End If
End Sub
Private Sub Check(ByVal CheckNum#, YesNum$())
Dim Num#, SingleNum#, ContrastNum1#, ContrastNum2#
For Num# = 1 To Len(CheckNum#)
'取出單一數字
SingleNum# = Val(Mid(CheckNum#, Num#, 1))
'3次方
ContrastNum1# = ContrastNum1# + (SingleNum# * SingleNum# * SingleNum#)
'4次方
ContrastNum2# = ContrastNum2# + (SingleNum# * SingleNum# * SingleNum# * SingleNum#)
Next
'abc=a的3次方+b的3次方+c的3次方時.或abcd=a的4次方+b的4次方+c的4次方+d的4次方時.則此數稱為阿姆斯壯數
If ContrastNum1# <> CheckNum# And ContrastNum2# <> CheckNum# Then Exit Sub
If Trim$(YesNum$(UBound(YesNum$()))) <> "" Then ReDim Preserve YesNum$(1 To UBound(YesNum$()) + 1)
YesNum$(UBound(YesNum$)) = CStr(CheckNum#)
End Sub
2005-09-28 07:57:01 · answer #2 · answered by Anonymous · 0⤊ 0⤋
http://willh.org/cfc/
請來這裡發問
2005-09-27 18:00:33 · answer #3 · answered by Anonymous · 0⤊ 0⤋