vb题 编一sub过程,对于已知正整数,判断该数是否是素数.然后调用该子过程,输出100至200之间的全部素数

2025-03-06 11:23:19
推荐回答(2个)
回答1:

sub函数是不能有返回值的,Function是可以有返回的。

我把代码修改了下,希望采纳!

' 这里sub改成 Function
    Function ss(ByVal n As Integer)
        Dim flag As Boolean, i As Long
        flag = True
        If n Mod 2 = 0 And n <> 0 Or n = 1 Then
            flag = False
        Else
            ' 这里改成 Math.Sqrt
            For i = 3 To Math.Sqrt(n) Step 2
                If n Mod i = 0 Then
                    flag = False : Exit For

                End If
            Next i
        End If
        ss = flag

    End Function

    Private Sub Form_Click()
        Dim k%
        k = 0
        Dim i As Integer
        For i = 100 To 200
            ' 这里改成 这样的
            If ss(i) Then
                k = k + 1
            End If
        Next i
        Print(k)
    End Sub

回答2:

Call ss(i%)
If ss Then
k = k + 1
这一行k+1不应该在判断语句里面,而是应该在判断语句上面。k+1的操作是无论是否输出均必须实行的。