gpt4 book ai didi

haskell - 为什么除法产生负数?

转载 作者:行者123 更新时间:2023-12-04 16:23:18 25 4
gpt4 key购买 nike

为什么这打印负数 -147982099 而不是 8462696833 = 600851475143/71

import Data.List

smallFactor n = case (elemIndex 0 (map (mod n) [2..])) of
Just x -> x + 2

main = print( quot n (smallFactor n) )
where n = 600851475143

完整输出:
$ ghc --make p3; ./p3
[1 of 1] Compiling Main ( p3.hs, p3.o )
Linking p3 ...
-147982099

最佳答案

因为您告诉它一个负数(假设您使用的是 32 位 GHC)。

where n = 600851475143 -- n = -443946297

注意:
Prelude Data.Int> 600851475143 :: Int32
-443946297

关于haskell - 为什么除法产生负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19393013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com