麻烦哥哥姐姐们,帮我写一个VB求素数的程序

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:46:35
Private Function check(i As Integer) As Boolean
For j = 2 To CInt(Sqr(i)) + 1
If i Mod j = 0 Then
check = False
Exit Function
End If
Next j
check = True
End Function

Private Sub Cmd2_Click()
Dim i As Integer
i = CInt(Text1.Text)
If i Mod 2 = 0 Then
i = i - 1
Else
i = i - 2
End If
Do Until check(i)
i = i - 2
Loop
Text2.Text = i
End Sub

这个是求素数的,但是感觉好烦琐.看不太明白,哥哥姐姐们要是有简单的就帮我写下.如果没有.拜托了,帮我解释一下

Private Function check(i As Integer) As Boolean
For j = 2 To CInt(Sqr(i)) + 1 '从2循环到i的平方根
If i Mod j = 0 Then '如果i除以j的余数为0,说明i不是素数
check = False '返回false
Exit Function '退出本过程
End If
Next j
check = True '循环结束没有退出过程,说明i不能整除从2到i平方根的所有数,也就是说i是素数,返回true
End Function

Private Sub Cmd2_Click()
Dim i As Integer
i = CInt(Text1.Text) '取一个数,转化为整数
If i Mod 2 = 0 Then '如果是偶数
i = i - 1 '取比它下的最大奇数,因为只有奇数才可能是素数
Else
i = i - 2 '同样是取比它下的最大奇数
End If
Do Until check(i) '循环到check(i)为true,也就是找到最大的素数
i = i - 2 '减2是为了使i一直是奇数
Loop
Text2.Text = i '输出这个素数
End Sub

这样解释可以吗?