2017年6月11日日曜日

Excel VBAで数学 2

 Excel VBAを使った簡単な数学プログラミングの続きです。

 今回は素因数分解です。
 小学校の頃にさんざんやった記憶があります。

 ソースコードは、ご自由にご利用ください。ただし、趣味のプログラムなので、保証はありません。

Option Explicit

'素因数分解

Public Sub Macro()
    Dim i As Long
    Dim j As Long
    Dim f As Collection
    
    For i = 1 To 100
        Sheet1.Cells(i, 1) = i
        Set f = Factorize(i)
        
        For j = 1 To f.count
            Sheet1.Cells(i, j + 1) = f(j)
        Next j
    Next i
End Sub

Public Function Factorize(x As Long) As Collection
    Set Factorize = New Collection
    
    Dim temp As Long
    Dim factor As Long
    
    temp = x
    factor = 2
    
    Do While (factor <= temp)
        If temp Mod factor = 0 Then
            temp = temp \ factor
            Factorize.Add factor
        Else
            factor = factor + 1
        End If
    Loop
End Function

0 件のコメント:

コメントを投稿