情報:IT
高校生

高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

情報 vba 素因数分解 プログラミング

回答

まだ回答がありません。

疑問は解決しましたか?