ProjectEuler Problem1-3
Haskellを勉強するために前々から解こうと思ったまま放置していたProjectEulerを解くことにした。
Problem1
やるだけ
sum [x|x<-[1 .. 999],x `mod` 3 == 0, x `mod` 5 == 0]
Problem2
これもやるだけ
problem2::Integer problem2 =sum[x | x <- takeWhile (< 4000000) fib, even x] where fib = 1:2:[x + y | (x, y) <- zip fib (tail fib)] main = do print problem2
Problem3
これも(ry
myfactor::Integer ->[Integer]->[Integer] myfactor n (x:xs) | n<x^2 = [n] |mod n x == 0 = x:myfactor (n `div` x) (x:xs) |otherwise = myfactor n xs problem3::Integer->Integer problem3 n = maximum $ myfactor n (2:[3,5..]) main = do print $ problem3 600851475143