素因数分解をExcelにさせてみました
ExcelのVBAを使って、初心者の練習として、素因数分解を表示する関数を作ってみました。
使ってみると、意外と面白い。
初心者の作っているものなので、詳しい方から見ると、問題があるかもしれませんが、ちょっと遊んでみるには十分だと思います。
Function primefact(ByVal Moto As Long) As String
Dim Num As Long, i As Long, Up As Long 'Num:分解する数、Up:iで割っていく最大
Dim Kai As String 'Kai:素因数 Moto:素の数を覚えておく
Num = Moto
Up = Num \ 2
Kai = ""
'整数をチェック
If Moto < 1 Then
MsgBox "1以上の整数を入力してください"
Exit Function
End If
'偶数をチェック
Do
If Num Mod 2 = 0 Then '余りが0なら素因数
Kai = Kai & "×" & 2
Num = Num / 2
End If
Loop While Num Mod 2 = 0
'奇数を確認
For i = 3 To Up Step 2
If Num Mod i = 0 Then '余りが0なら素因数
Kai = Kai & "×" & i
Num = Num / i
i = i - 2 '素因数、何回もトライ
End If
Next
If Num <> 1 Then Kai = Kai & "×" & Num
If Num = Moto Then Kai = "?素数です"
primefact = Moto & "=" & Mid(Kai, 2) '頭に×が来るのを消す
End Function
この記事が気に入ったらサポートをしてみませんか?