我有下面的代碼片斷,以告訴如果一個數字是素數或不在我的vb項目。任何人都可以向我詳細解釋vb中的這一行是什麼嗎?
Public Sub CheckButton_Click(sender As Object, e As EventArgs) Handles CheckButton.Click
Dim myNumber As Integer, myDivider As Integer
myNumber = Integer.Parse(PrimeTextBox.Text)
Select Case myNumber
Case Is <= 0
MessageBox.Show("I'm only accepting values above 0. :p")
Exit Sub
End Select
For myDivider = 2 To (myNumber - 1)
If myNumber Mod myDivider = 0 Then
MessageBox.Show(" " & myNumber & " is not a prime Number")
Exit For
End If
Next
If (myDivider > (myNumber/myDivider)) Then
MessageBox.Show(" " & myNumber & " is a prime number")
End If
End Sub
我都明白是怎麼回事,直到行:
If (myDivider > (myNumber/myDivider)) Then
MessageBox.Show(" " & myNumber & " is a prime number")
End If
我只是不明白上面的線做的,我所知道的是,當我刪除從我這行代碼,像9,21,99 ...這樣的數字都被檢測爲素數,這是不正確的。
我明白的是,第一For
循環檢查由用戶鍵入的數目是整除通過任何數目從2到數 - 1個原因很明顯,一個素數可以通過僅本身和1
我想讓別人清楚地向我解釋這些行在我的代碼中究竟做了什麼,因爲現在我只知道它有助於檢查像9,99這樣的數字是否爲素數。謝謝。
9,21,99如何被第一個循環檢測爲素數?當myDivider = 3時,Mod將返回0,這將顯示「Not a prime number」消息。 – metacubed
我明白你想說什麼,但我認爲數字只能被2除,所以當像9,21和99這樣的數字被輸入時,如果我決定添加一個'否則'語句,即當數字返回1的模數時,其上的Option Strict可能會反對'myDivider'的第二次使用; –
;它是一個循環索引器 – Plutonix