VBで、最大公約数や最小公倍数を求めるには

 

最大公約数を求める関数fgcm、最小公倍数を求める関数flcmは、以下を参照ください。

Function flcm(x As Integer, y As Integer) As Integer
Dim g As Integer
g = fgcm(x, y)
flcm = x / g * y / g * g
End Function

Function fgcm(a As Integer, b As Integer)
Dim r As Integer, tmp As Integer, z As Integer
If a < b Then
tmp = a: a = b: b = tmp
End If
r = a Mod b
If r = 0 Then z = b Else z = fgcm(b, r)
fgcm = z

End Function
ポイントは、上記の太字の部分です。このアルゴリズムはユークリッドの互助法と' 呼ばれ、最大公約数を求めるのによく使われるアルゴリズムです。
'
上記のように、関数fgcmの中でまたfgcmを呼び出す(再帰的用法)ことがVB'c言語では可能です。


Private Sub Command1_Click()
Dim x As Integer, y As Integer
x = Int(Val(Text1.Text))
y = Int(Val(Text2.Text))
If x = 0 Or y = 0 Then
Label5 = "
入力の数を確認してください"
Exit Sub
End If
Label5.Caption = Str(fgcm(x, y))
Label6.Caption = Str(flcm(x, y))
End Sub