English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

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 電腦與網際網路 程式設計

3 個解答

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

fedest.com, questions and answers