我正在学习haskell,我看到的函数定义是:
quickSort (x : xs) = (quickSort less) ++ (x : equal) ++ (quickSort more)
where less = filter (< x) xs
equal = filter (== x) xs
more = filter (> x) xs
Run Code Online (Sandbox Code Playgroud)
是否可以只用一次遍历列表而不是3来编写它?
我试图回答的问题:
13195 的质因数是 5、7、13 和 29。数字 600851475143 的最大质因数是多少?
我哪里错了?我的盛年?test 似乎是问题所在,但它在相对较小的数字上工作得很好。但总理?测试给出了较大数字的错误答案。有没有更简单的方法来解决这个问题?
(define b 3)
(define z 0)
(define divides?
(lambda (a b)
(= (remainder a b) 0)))
(define (prime? n)
(cond
((or (= n 1) (= n 0)) false)
((even? n) false)
((= n 2) true)
((= n b) true)
((divides? n b) false)
(else (and (set! b (+ b 1)) (prime? n)))))
;Largest Prime Factor Test
(define (LPF x)
(cond
((divides? 600851475143 x)
(cond
((prime? x)
(cond
((> x z) …Run Code Online (Sandbox Code Playgroud)