2014-08-16

orleanz: (main)
2014-08-16 10:50 pm

критика кода приветствуется!

написал на Хаскелле решение задачи с Проджект Эйлера

- What is the largest prime factor of the number 600851475143 ?


getDivider :: Integral a => a -> a -- getting first nontrivial divider
getDivider x = if length ar == 0 then 2 else (last ar) + 1
  where ar = takeWhile (\z -> rem x z > 0) [2 .. x-1]

factorizer :: Integral a => [a] -> [a] -- get list of prime dividers
factorizer (x:xs) = if divider < x then divider : factorizer [div x divider] else [x] 
  where divider = getDivider x

main = do print $ last $ factorizer [600851475143]


Напишите кто-нибудь на Джаве, сравним эстетический момент