挑马桶需要注意什么:使用WHILE WEND语句出错,所有测试的答案均为不是素数

来源:百度文库 编辑:高校问答 时间:2024/05/06 01:49:01
Private Sub Form_click()
Dim a As Integer
Static b As Integer
a = InputBox("请输入大于3的正整数", "测试是否为素数")
b = 2
While a Mod b = 0
b = b + 1
If a = b Then
swit = 1
End If
Wend
If swit = 1 Then Print swit; a; "是一个素数" Else Print swit; a; "不是素数"
End Sub
第一条答案好像不对吧,如果这样的话
15 mod 2 <>0
17 mod 2<>0
那结果如何区分

Private Sub Form_click()
Dim a As Integer
Static b As Integer
a = InputBox("请输入大于3的正整数", "测试是否为素数")
b = 2
While (a Mod b <> 0)and(swit <> 1)
b = b + 1
If (a mod b = 0)and(a > b) Then
swit = 1
End If
Wend
If swit <> 1 Then Print swit; a; "是一个素数" Else Print swit; a; "不是素数"
End Sub

判断条件写反了。你写成了当b是a的因子时将b加1,那此时a就不是素数了。