【问题标题】:Visual Basic: How can i display the prime numbers between 1 and the inputted numberVisual Basic:如何显示 1 和输入数字之间的质数
【发布时间】:2015-06-02 15:30:00
【问题描述】:

大家好,我正在尝试查找任何输入的质数。我希望它们位于列表框中,并在文本框中输入。我想使用两个参数,但我不知道如何使用。这是我需要帮助的代码。我不是最擅长视觉基础的,我只需要一些指导。我的代码不起作用,但当我按下显示时会显示一个下拉框。

Public Class Form1
    Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click

        Dim prim As Integer
        Dim test As Integer
        Dim imPrime As Boolean = False
        prim = CInt(txtNum.Text)
        test = prim

        If prim = 1 Then
            imPrime = False
            MessageBox.Show("Enter a number greater than one please")
        Else
            Do While prim >= 2
                For i As Integer = 2 To prim
                    If prim Mod i = 0 Then
                        imPrime = False
                        Exit For
                    Else
                        imPrime = True
                        lstPrime.Items.Add(prim)
                    End If
                Next
            Loop
        End If
        If imPrime = True Then
            lstPrime.Items.Add(prim)
        End If

    End Sub
End Class

【问题讨论】:

    标签: vb.net function primes basic


    【解决方案1】:

    这是我最快的在两个数字之间生成素数的 VBA 代码。

    生成的素数被放入剪贴板。您将需要打开 您的 ms office word 并键入 Ctrl+V 以查看所有生成的素数。

    Sub generateprimenumbersbetween()
    Dim starting_number As Long
    Dim last_number As Long
    Dim primenumbers As Variant
    Dim a As Long
    Dim b As Long
    Dim c As Long
    starting_number = 1 'input value here
    last_number = 1000000 'input value here
    primenumbers = ""
    For a = starting_number To last_number
        c = Round(Sqr(a)) + 1
        For b = 2 To c
            If a = 1 Or (a Mod b = 0 And c <> b) Then
                Exit For
            Else
                If b = c Then
                    primenumbers = primenumbers & " " & a
                    Exit For
                End If
            End If
        Next b
    Next a
    Dim answer As DataObject
    Set answer = New DataObject
    answer.SetText primenumbers
    answer.PutInClipboard
    End Sub
    

    【讨论】:

      【解决方案2】:

      我认为 while 循环没有按您的意愿工作。您需要两个循环,第一个循环计数到可能的素数,内部循环计数到外循环中的计数器。

      您可以在任何地方找到示例...这里是one implemented in C#,但由于您的问题专门针对列表框,我已将其翻译为 VB。

      Public Class Form1
      
          Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
              calculatePrimes()
          End Sub
      
          Private Sub calculatePrimes()
      
              Dim prim As Integer
              Dim count As Integer = 0
      
              prim = CInt(Me.TextBox1.Text)
              If prim < 3 Then
                  MsgBox("Please enter a bigger number")
                  Return
              End If
      
              Me.ListBox1.Items.Clear()
      
              For i As Integer = 1 To prim
                  Dim isPrime As Boolean = True
                  For j As Integer = 2 To i
                      If (i Mod j <> 0) Then count = count + 1
                  Next
                  If count = (i - 2) Then Me.ListBox1.Items.Add(i)
                  count = 0
              Next
      
          End Sub
      End Class
      

      (假设您有一个名为 TextBox1 的输入文本框和一个名为 ListBox1 的显示列表框)

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多