Visual Basic for Applications - 检查数字是否为素数不起作用

问题描述 投票:0回答:2

我有以下 Visual Basic for Applications 代码:

Function IsPrimeTrialDivision(number As Long) As Boolean
    Dim i As Long

    If number <= 1 Then
        IsPrime = False
        Exit Function
    End If

    For i = 2 To Sqr(number)
        If number Mod i = 0 Then
            IsPrime = False
            Exit Function
        End If
    Next i

    IsPrime = True
End Function

我正在 Excel 文档中使用它。逻辑看起来不错,但总是返回

FALSE
:

为什么不起作用?

excel vba
2个回答
0
投票

看来您只是调用 Test() 函数。 在您的测试函数中使用以下内容

//Test = False
Test = isPrimeTrialDevision(number)
希望这能解决您的问题。


0
投票

您会得到

False
函数结果,因为没有分配函数名称。因此返回值为 0,这意味着作为
Boolean
False
值。 要从函数返回值,在返回之前必须对确切的函数名称进行赋值。

© www.soinside.com 2019 - 2024. All rights reserved.