statianzo/js-hs

finished euler 7-10

• Loading branch information...
1 parent 7b3f3c9 commit dfad45a7d77dcb9874260fd20d45758b28539e81 committed Jun 3, 2010
Showing with 40 additions and 0 deletions.
1. +11 −0 euler/problem10.hs
2. +11 −0 euler/problem7.hs
3. +13 −0 euler/problem8.hs
4. +5 −0 euler/problem9.hs
11 euler/problem10.hs
 @@ -0,0 +1,11 @@ +{-Find the sum of all the primes below two million.-} + +primes :: [Integer] +primes = 2 : 3 : primes' + where 1:p:candidates = [6*k+r | k <- [0..], r <-[1,5]] + primes' = p : filter isPrime candidates + isPrime n = all (notDiv n) + \$ takeWhile (\p -> p*p <= n) primes' + notDiv a b = a `mod` b /= 0 + +sumBelowTwoMill = sum \$ takeWhile (<2000000) primes
11 euler/problem7.hs
 @@ -0,0 +1,11 @@ +{- What is the 10001st prime number? -} +primes :: [Integer] +primes = 2 : 3 : primes' + where 1:p:candidates = [6*k+r | k <- [0..], r <-[1,5]] + primes' = p : filter isPrime candidates + isPrime n = all (notDiv n) + \$ takeWhile (\p -> p*p <= n) primes' + notDiv a b = a `mod` b /= 0 + + +
13 euler/problem8.hs
 @@ -0,0 +1,13 @@ +{-Find the greatest product of five consecutive digits in +- this 1000 digit number -} + +number = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450" +number' :: [Integer] +number' = map (\x -> read [x]) number + +products :: (Integral a) => [a] -> a -> a +products [_,_,_,_] hi = hi +products (a:b:c:d:e:xs) hi = products (b:c:d:e:xs) (max prod hi) + where prod = foldl1 (*) x + x = a:b:c:d:e:[] +
5 euler/problem9.hs
 @@ -0,0 +1,5 @@ +{-There exists exactly one Pythagorean triplet for which a + b + c = 1000. +- Find the product abc.-} + + +triplets = [a*b*(1000-(a+b))|a<-[1..1000],b<-[1..1000],a^2+b^2==(1000-(a+b))^2]

0 comments on commit `dfad45a`

Please sign in to comment.