2016-11-27 4 views
-6

ファクタと呼ばれるファンクションを作成し、整数をとり、素因数 (素因数分解と呼ばれます)を決定します。この関数は整数をとり、整数のリスト を返します。このリストは、多重度を含まない、数の素因数でなければなりません。 たとえば、65の素因数は、(完全な乗算が 56 = 23 ・7 = 2・2・2・7であっても、2と7です)。 175561と62451532000の主な要因は何ですか?haskellでファクタの素数を見つける

これまでのところ、私が得たことは次のとおりです。

factor :: Int -> [Int] 
factor n 
    | factors == [] = [n] 
    | otherwise = (factors ++ factor (n `div` (head factors))) 
    where factors = take 1 $ filter (\x -> (n `mod` x) == 0) [2 .. n-1] 

が、この印刷プラグ56は、それが2.2.2.7を与え、私は2のような重複なしでそれをしたいのフル乗算、7 どのようにすることができますフィルタ?

答えて

関連する問題