获得F#中最大的素数因素

时间:2012-07-01 15:12:30

标签: f#

我有VS 11测试版,以下代码正常运行:

let rec fac x y =
    if x = y then y
    elif x % y = 0I then fac (x / y) y
    else fac x / (y + 1I)

现在我安装了VS 2012 RC,我收到以下错误:

The type 'System.Numerics.BigInteger -> System.Numerics.BigInteger' is not compatible with the type 'System.Numerics.BigInteger'

代码不正确还是F#互动?这是F#3.0。

编辑

实际上问题不在F#中,但在我的代码中,它应该是:

else fac x (y + 1I)

当我在VS 11工作时,我刚刚保存了错误的版本。

1 个答案:

答案 0 :(得分:3)

fac需要两个数字,所以当你有fac x时,它不是一个数字,因此不能用数字来划分。