分解質因數

-- 分解質因數
-- file: pfactors.hs

 

primes = sieve [2..]
  where sieve (x:xs) = x : sieve (filter (/y ->y `rem` x /= 0) xs)

 

pfactors n = pfactors' n primes
  where
    pfactors' 1 _ = []
    pfactors' _ [] = []
    pfactors' n ps@(p:ps') =
      if n `rem` p == 0 then
        p : pfactors' (n `div` p) ps
      else
        pfactors' n ps'

 

發佈了39 篇原創文章 · 獲贊 3 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章