Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 1 decade ago

VB 2005 ( 20點 )

請問各位大大

如何寫找出質數的程式碼

要VB2005 不要VB6的

就是例如 我輸入10

然後會印出 1 . 3 . 5 .7 . 9

我輸入 20

會印出 1.3.5.7.9.11.13.15.17.19

這樣子

拜託

我已經想到快發瘋惹><

3 Answers

Rating
  • 水月
    Lv 6
    1 decade ago
    Favorite Answer

    你在表單放入TextBox1,ListBox1,Button1,將下列程式寫入就可以了。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim IntStart, IntEnd As Integer

    Dim IntAcc, IntComp As Integer

    On Error GoTo Exception

    If IsNumeric(TextBox1.Text) = False Then

    MsgBox("輸入資料非正整數,請重新輸入")

    Exit Sub

    End If

    If 1 <= CLng(TextBox1.Text) Then

    IntStart = 1

    IntEnd = CLng(TextBox1.Text)

    Else

    IntStart = CLng(TextBox1.Text)

    IntEnd = 1

    End If

    ListBox1.Items.Clear()

    ListBox1.Items.Add(1)

    For IntAcc = IntStart To IntEnd

    For IntComp = 2 To IntAcc - 1

    If IntAcc Mod IntComp = 0 Then

    Exit For

    End If

    Next

    If IntAcc = IntComp Then

    ListBox1.Items.Add(CStr(IntAcc))

    End If

    Next

    MsgBox("搜尋完成")

    Exit Sub

    Exception:

    End Sub

    Source(s): VB研究小站
  • Shadow
    Lv 5
    1 decade ago

    表單內請設置:

    TextBox1(輸入想要計算的數值)

    Button1(計算按鈕)

    Label1(顯示結果)

    程式碼:

    -------------------------

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim i As Integer '用來計算的數字

    '用來顯示的標籤顯示為1

    '因為只要是正整數,~0之間一定會有1這個數字

    Label1.Text = "1"

    '計算3~指定數字間的奇數,增值為2

    For i = 3 To TextBox1.Text Step 2

    '從3開始,每個數字間以"、"隔開

    Label1.Text = Label1.Text & "、" & i

    Next i

    End Sub

    End Class

    -------------------------

    (請直接貼在VB2005中,較容易觀看註解)

    2008-11-01 15:29:08 補充:

    如果是求質數,請設置:

    TextBox1(輸入計算值)、Button1(計算)、ListBox1(顯示結果)

    下列為程式碼:

    ----------------------------------

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    2008-11-01 15:29:18 補充:

    Dim I, J As Integer '迴圈中使用的代數

    Dim x As Integer '用來判斷兩數相除是否為0

    Dim N = TextBox1.Text 'N表示使用者輸入的數字

    Dim Ans As String = "" '顯示在ListBox1的結果

    ListBox1.Items.Clear() '清空

    '2必為質數,先列入結果

    '再運用以下程式碼列出除2以外之質數

    ListBox1.Items.Add("2")

    2008-11-01 15:29:34 補充:

    For I = 1 To N Step 2 '使用迴圈尋找1~N的奇數

    x = 0 'X歸0

    For J = 1 To I '辨識找出的奇數是否為質數

    If I Mod J = 0 Then x = x + 1 '如果整除則 X+1

    Next J

    2008-11-01 15:29:38 補充:

    '如果為質數,X必等於2

    '因為質數只有2個數可以整除它,這兩個數分別為1與該數本身

    '使用ListBox1列出大於2的質數

    If x = 2 Then ListBox1.Items.Add(I)

    Next I

    End Sub

    End Class

    ----------------------------------

    2008-11-01 15:29:51 補充:

    (請直接貼在VB2005中,較容易觀看註解)

  • Aiolus
    Lv 5
    1 decade ago

    你那個是奇數不是質數吧=_=

Still have questions? Get your answers by asking now.