看到這個标題,我們首先要想到幾個問題來仔細分析
1.随機數如何生成
2.質數是為何物
下面我們就來一一解決剛剛想到的問題
1.随機數
我們假設想生成1000以内的21個随機數
- Dim i As Integer, x As Integer
- Randomize()
- For x = 0 To 20
- i = CInt(Int((1000 * Rnd()) + 1))
- ' 産生1到N的一個任意值()
- Label1.Text = Label1.Text + CStr(i) + vbCrLf
- Next
這樣我們就生成了我們想要的随機數。
2.質數
質數隻能被1和它本身整除
給大家奉上一個求質數的函數:
- Function IsPrimeNumber(ByVal pNumber As Integer) As Boolean
- For iFactor = 2 To Int(Math.Sqrt(pNumber))
- If pNumber Mod iFactor = 0 Then
- Return False
- End If
- Next
- Return True
- End Function
雖然簡單,很實用哦。但是要注意1不是質數
下面是我所有的代碼,請大家批評指正!
- Public Class Form1
- Dim iFactor As Integer
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim i As Integer, x As Integer, y As Integer = 0, z As Integer = 0 'x是循環用,y和z是用作計數用的
- Dim arr(20) As Integer
- Randomize()
- For x = 0 To 20
- i = CInt(Int((100 * Rnd()) + 1))
- y = y + 1
- ' 産生1到N的一個任意值()
- Label1.Text = Label1.Text + CStr(i) + vbCrLf
- If IsPrimeNumber(i) = True Then
- z = z + 1
- Label2.Text = Label2.Text + CStr(i) + vbCrLf
- End If
- Next
- Label3.Text = y & "," & z
- End Sub
- Function IsPrimeNumber(ByVal pNumber As Integer) As Boolean
- For iFactor = 2 To Int(Math.Sqrt (pNumber))
- If pNumber Mod iFactor = 0 Then
- Return False
- End If
- Next
- Return True
- End Function
- End Class