aboutsummaryrefslogtreecommitdiff
path: root/haskell/003-largest_prime_factor.hs
blob: 41503772cc143716a1236c2b3eb67c021f93c160 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- Largest prime factor

-- Problem 3
-- The prime factors of 13195 are 5, 7, 13 and 29.

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


main = do
    print (last $ factors 600851475143)

factors x = trial_division 2 x

trial_division :: Int -> Int -> [Int]
trial_division by x
    | x <= 1 = []
    | x `mod` by == 0 = by:trial_division by (x `div` by)
    | otherwise = trial_division (by + 1) x