VB常用算法(五)約數(shù)因子

字號:

1、算法說明
    1) 公約數(shù):
     用輾轉(zhuǎn)相除法求兩自然數(shù)m、n的公約數(shù)。
    (1) 首先,對于已知兩數(shù)m、n,比較并使得m>n;
    (2) m除以n得余數(shù)r;
    (3) 若r=0,則n為求得的公約數(shù),算法結(jié)束;否則執(zhí)行步驟(4)
    (4) mßn nßr 再重復(fù)執(zhí)行(2)
    譬如: 10與5
    分析步驟: m=10 n=5
     r=m mod n=0
     所以n(n=5)為公約數(shù)
     24與9
    分析步驟: m=24 n=9
     r=m mod n=6
     r≠0 m=9 n=6
     r=m mod n=3
     r≠0 m=6 n=3
     r=m mod n=0
     所以n(n=3)為公約數(shù)
    算法實現(xiàn)
    循環(huán)實現(xiàn)
    Private Function GCD(ByVal m As Long, ByVal n As Long) As Long
     Dim temp As Long
     If m < n Then temp = m: m = n: n = temp
     Dim r As Long
     Do
     r = m Mod n
     If r = 0 Then Exit Do
     m = n
     n = r
     Loop
     GCD = n
     End Function
    遞歸實現(xiàn)
     Private Function GCD(ByVal m As Long, ByVal n As Long) As Long
     Dim temp As Long
     If m < n Then temp = m: m = n: n = temp
     Dim r As Long
     r = m Mod n
     If r = 0 Then
     GCD = n
     Else
     m = n
     n = r
     GCD = GCD(m, n)
     End If
     End Function
    2) 最小公倍數(shù)
     m×n÷公約數(shù)
    3) 互質(zhì)數(shù)
     公約數(shù)為1的兩個正整數(shù)