2以上の整数が与えられたとき、それを素数の積に分解するプログラムを作成したいのです。
例えば、TextBox1に24と打ち込んで、Button1をクリックすると、TextBox2に2×2×2×3が表示されるといった具合です。
↓ここからどうすれば良いか、ご教授お願い致します。
Private Sub IntegerButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n, a As Integer
n = TextBox1.Text
Do
back:
If n Mod 2 = 0 Then
n = n Mod 2 = 0
Else
n = n Mod 3 = 0
End If
GoTo back
Loop Until n = n + 1
TextBox2.Text = n & "×"
End Sub
End Class
No.1ベストアンサー
- 回答日時:
じぶんだったら、
pl: 素因数のリスト
N: 対象
m: 現在の素因数候補
として、
if N mod m = 0 then
plにmを追加。
N = N / m
else
m = m + 1
end
をループさせて、plを完成させる――というプログラムにしますね。
多少効率を考えると、m=2を特別扱いし、m=3,5,7,...[√N]の範囲でループさせるとか。
No.2
- 回答日時:
作ってみました
Dim n As Long = TextBox1.Text
Dim m As Long = 2
Dim pl As ArrayList = New ArrayList
If (n <= 1) Then
Label1.Text = "NG"
Exit Sub
End If
While n >= m * m
While n Mod m = 0
pl.Add(m.ToString())
n /= m
End While
If (m = 2) Then
m = 3
Else
m += 2
End If
End While
If (n > 1) Then
pl.Add(n.ToString())
End If
Label1.Text = String.Join("×", CType(pl.ToArray(GetType(String)), String()))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
DoEventsが必要な理由について
-
エクセルの当番表を作っていま...
-
VBAで3秒だけ時間を止めたい
-
ループ内での条件処理
-
DOSコマンドのループ内のTIMEコ...
-
アクティブセルから、A列最終行...
-
VBA Dir関数でファイルをループ...
-
VBA for i=1 to lastrow
-
UWSCの終了の仕方
-
GIFアニメをループさせたくない
-
while(*s++=*t++)の判定は?
-
範囲指定したセルを1つずつ飛...
-
どなたかこのプログラミングを...
-
Javascriptでalertを大量のルー...
-
テキストボックスの名前に変数...
-
vbscriptでIE自動入力(途中で...
-
乱数の桁数指定、または範囲指定。
-
Java 南京錠
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報