高1情報(VBA)についてです。
下のようなプログラムで素因数分解して、答えをMsgboxで表示したいのですがやり方が分かりません。(文字に数字が当てはまるとは思うのですが、どういう風になるのかがよく分かりません💦)
どなたか教えていただきたいです🙏
めんどくさい質問でごめんなさい🙇♂️
Sub Factorization()
Dim m As Long, n As Long
Dim j As Long, k As Long
Dim prm() As Long
j = 1
k = 3
n = InputBox("自然数を入力してください")
If n <= 0 Then
MsgBox ("入力できるのは自然数のみです")
Exit Sub
End If
'配列の要素数を log2nとする
'(底を e に変換しています)
m = Int(Log(n) / Log(2)) + 1
ReDim prm(m)
For s = 1 To m
'n が素数なら計算終了
If PRIME(n) = 1 Then
j = j + 1
prm(j) = n
Debug.Print prm(j);
Exit For
'n が 2 で割り切れるなら
'素因数 2 を配列に入れます
ElseIf n Mod 2 = 0 Then
n = n / 2
j = j + 1
prm(j) = 2
Debug.Print prm(2);
'n が k で割り切れて、かつ k が素因数ならば
'素因数 k を配列に入れます
ElseIf n Mod k = 0 And PRIME(k) = 1 Then
n = n / k
j = j + 1
prm(j) = k
Debug.Print prm(j);
Else
'n が k で割り切れなくなったら k の値に 2 を加えます
k = k + 2
End If
Next s
End Sub
คำตอบ
ยังไม่มีคำตอบ
เมื่อดูคำถามนี้แล้ว
ก็จะเจอคำถามเหล่านี้ด้วย😉