素数检查器将每个数字作为素数返回

时间:2014-05-06 13:46:57

标签: vb.net

我有一些代码可以检查一个数字是否为素数但是它表示每个2以上的数字都是素数,或者它有时会胜利。我无法想象我的代码有什么问题。我将发布到目前为止的内容。

    Dim intNumber As Integer = Me.txtNumber.Text
    Dim i As Integer
    Select Case intNumber
        Case Is < 2
            Me.lblAnswer.Text = intNumber & " is not prime."
        Case Is = 2
            Me.lblAnswer.Text = intNumber & " is prime."
        Case Is > 2
            For i = 3 To (intNumber - 1)
                If intNumber Mod i = 0 Then
                    Me.lblAnswer.Text = intNumber & " is not prime."
                Else
                    Me.lblAnswer.Text = intNumber & " is prime."
                End If
            Next i
    End Select

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

因为你发现一个数字不是素数后你没有回来。所以它一直检查直到i-1并检查i-1 Mod i = 0是否永远不会。所以它说所有数字都是素数。

另外,你只需检查从2到sqrt(i)的素数是否分成i,看是否是素数。