Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

finished euler 7-10

  • Loading branch information...
commit dfad45a7d77dcb9874260fd20d45758b28539e81 1 parent 7b3f3c9
@statianzo authored
View
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
View
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
+
+
+
View
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:[]
+
View
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]
Please sign in to comment.
Something went wrong with that request. Please try again.