【发布时间】:2014-07-19 14:52:06
【问题描述】:
我正在尝试解决 Haskell 中的欧拉问题 3,其中涉及找到一个数的最大素因数。我的代码运行了很长时间,似乎挂起。是什么导致我的代码效率如此之低?
primes = sieve (2:[3,5..])
where sieve (x:xs) = x:[y | y <- (sieve xs), mod y x /= 0]
sieve [] = []
primefactors n = filter (\x -> mod n x == 0) (primesUnder n)
where primesUnder z = reverse (takeWhile (< z) primes)
solve3 = head (primefactors 600851475143)
【问题讨论】:
-
这个问题更适合codereview.stackexchange.com
-
@jmoerdyk 应该在 StackOverflow 上发布的帮助请求与 StackExchange 上的类似问题有什么区别?
标签: performance haskell primes prime-factoring