我想.在Haskell中仅使用列表推导方法和/或(函数组合运算符)找到给定数字的所有素因子.我特别想避免递归解决方案.
例如,pfactors 120必须产生[2,2,2,3,5]输出.
我试过了:
pfactors n = [p | p <- [2..n], n `mod` p == 0, [d | d <- [1..p], p `mod` d == 0] == [1,p]]
Run Code Online (Sandbox Code Playgroud)
但是当我打电话时pfactors 120,结果[2,3,5]并非所有的主要因素.