Permalink
Browse files

code import for real this time

  • Loading branch information...
1 parent cbaf728 commit d1d9bff3567a2d2ee412d3b6dc3309e5af6975a8 Evan Klitzke committed Apr 25, 2008
Showing with 8,801 additions and 0 deletions.
  1. +4 −0 01/euler_problem.hs
  2. +6 −0 02/euler_problem.hs
  3. +5 −0 03/euler_problem.hs
  4. BIN 04/.euler_problem.hs.swp
  5. +7 −0 04/euler_problem.hs
  6. +3 −0 06/euler_problem.hs
  7. +5 −0 07/euler_problem.hs
  8. +37 −0 08/euler_problem.hs
  9. +4 −0 09/euler_problem.hs
  10. +7 −0 10/euler_problem.hs
  11. BIN 11/.euler_problem.hs.swp
  12. +71 −0 11/euler_problem.hs
  13. +4 −0 12/euler_problem.hs
  14. +105 −0 13/euler_problem.hs
  15. 0 14/FIXME
  16. +18 −0 14/euler_problem.hs
  17. +22 −0 14/euler_problem.py
  18. +18 −0 14/euler_problem2.hs
  19. +10 −0 14/other.hs
  20. +10 −0 14/other2.hs
  21. +27 −0 14/other_1.hs
  22. +5 −0 15/euler_problem.hs
  23. +5 −0 16/euler_problem.hs
  24. +39 −0 17/euler_problem.hs
  25. +28 −0 18/euler_problem.hs
  26. +31 −0 19/euler_problem.hs
  27. +5 −0 20/euler_problem.hs
  28. +13 −0 21/euler_problem.hs
  29. +15 −0 22/euler_problem.hs
  30. +1 −0 22/names.txt
  31. +14 −0 23/euler_problem.hs
  32. +6 −0 24/euler_problem.hs
  33. +4 −0 25/euler_problem.hs
  34. +28 −0 26/euler_problem.hs
  35. +14 −0 27/euler_problem.hs
  36. +13 −0 28/euler_problem.hs
  37. +6 −0 29/euler_problem.hs
  38. +10 −0 30/euler_problem.hs
  39. +14 −0 31/euler_problem.hs
  40. +14 −0 32/euler_problem.hs
  41. +58 −0 33/EulerProblem.hs
  42. +9 −0 34/EulerProblem.hs
  43. +22 −0 35/EulerProblem.hs
  44. +35 −0 36/EulerProblem.hs
  45. +16 −0 37/EulerProblem.hs
  46. +17 −0 38/EulerProblem.hs
  47. +23 −0 39/EulerProblem.hs
  48. +7 −0 40/EulerProblem.hs
  49. +17 −0 41/EulerProblem.hs
  50. +21 −0 42/EulerProblem.hs
  51. +1 −0 42/words.txt
  52. +31 −0 43/EulerProblem.hs
  53. +10 −0 44/EulerProblem.hs
  54. +38 −0 45/EulerProblem.hs
  55. +24 −0 46/EulerProblem.hs
  56. +15 −0 47/EulerProblem.hs
  57. +6 −0 48/EulerProblem.hs
  58. +21 −0 49/EulerProblem.hs
  59. +50 −0 50/EulerProblem.hs
  60. +28 −0 51/EulerProblem.hs
  61. +14 −0 52/EulerProblem.hs
  62. +6 −0 53/EulerProblem.hs
  63. +18 −0 54/EulerProblem.hs
  64. +1,000 −0 54/poker.txt
  65. +5 −0 Makefile
  66. +118 −0 common/EulerMath.hs
  67. +13 −0 common/euler_lib.hs
  68. BIN polyomino/._AdditiveNumberTheory.hs
  69. BIN polyomino/._ArithmeticFunctions.hs
  70. BIN polyomino/._CharactersSn.hs
  71. BIN polyomino/._CombinatoricsCounting.hs
  72. BIN polyomino/._CombinatoricsGeneration.hs
  73. BIN polyomino/._ContinuedFraction.hs
  74. BIN polyomino/._DirichletSeries.hs
  75. BIN polyomino/._EllipticCurves.hs
  76. BIN polyomino/._FF.hs
  77. BIN polyomino/._Factoring.hs
  78. BIN polyomino/._FactoringCFRAC.hs
  79. BIN polyomino/._FactoringECM.hs
  80. BIN polyomino/._GBasis.hs
  81. BIN polyomino/._Gentzen.hs
  82. BIN polyomino/._Graph.hs
  83. BIN polyomino/._HilbertFunction.hs
  84. BIN polyomino/._Ideals.hs
  85. BIN polyomino/._IrreduciblePolyFp.hs
  86. BIN polyomino/._MPoly.hs
  87. BIN polyomino/._MathsPrimitives.hs
  88. BIN polyomino/._MergeSort.hs
  89. BIN polyomino/._ModularForms.hs
  90. BIN polyomino/._NonArchimedean.hs
  91. BIN polyomino/._NumberTheoryFundamentals.hs
  92. BIN polyomino/._P_adicAnalysis.hs
  93. BIN polyomino/._PermutationGroupExamples.hs
  94. BIN polyomino/._PermutationGroups.hs
  95. BIN polyomino/._PermutationOrbits.hs
  96. BIN polyomino/._PolyaCounting.hs
  97. BIN polyomino/._PowerSeries.hs
  98. BIN polyomino/._ProgramsFromProofs.hs
  99. BIN polyomino/._QQ.hs
  100. BIN polyomino/._QuadraticField.hs
  101. BIN polyomino/._RandomGenerator.hs
  102. BIN polyomino/._RedBlackTree.hs
  103. BIN polyomino/._SchreierSims.hs
  104. BIN polyomino/._Six.hs
  105. BIN polyomino/._Trie.hs
  106. BIN polyomino/._UPoly.hs
  107. BIN polyomino/._UmbralCalculus.hs
  108. +101 −0 polyomino/AdditiveNumberTheory.hs
  109. +92 −0 polyomino/ArithmeticFunctions.hs
  110. +98 −0 polyomino/CharactersSn.hs
  111. +146 −0 polyomino/CombinatoricsCounting.hs
  112. +47 −0 polyomino/CombinatoricsGeneration.hs
  113. +78 −0 polyomino/ContinuedFraction.hs
  114. +186 −0 polyomino/DirichletSeries.hs
  115. +376 −0 polyomino/EllipticCurves.hs
  116. +73 −0 polyomino/FF.hs
  117. +41 −0 polyomino/Factoring.hs
  118. +242 −0 polyomino/FactoringCFRAC.hs
  119. +170 −0 polyomino/FactoringECM.hs
  120. +171 −0 polyomino/GBasis.hs
  121. +285 −0 polyomino/Gentzen.hs
  122. +151 −0 polyomino/Graph.hs
  123. +114 −0 polyomino/HilbertFunction.hs
  124. +169 −0 polyomino/Ideals.hs
  125. +70 −0 polyomino/IrreduciblePolyFp.hs
  126. +410 −0 polyomino/MPoly.hs
  127. +97 −0 polyomino/MathsPrimitives.hs
  128. +58 −0 polyomino/MergeSort.hs
  129. +112 −0 polyomino/ModularForms.hs
  130. +291 −0 polyomino/NonArchimedean.hs
  131. +157 −0 polyomino/NumberTheoryFundamentals.hs
  132. +98 −0 polyomino/P_adicAnalysis.hs
  133. +190 −0 polyomino/PermutationGroupExamples.hs
  134. +168 −0 polyomino/PermutationGroups.hs
  135. +119 −0 polyomino/PermutationOrbits.hs
  136. +133 −0 polyomino/PolyaCounting.hs
  137. +349 −0 polyomino/PowerSeries.hs
  138. +136 −0 polyomino/Primes.hs
  139. +177 −0 polyomino/ProgramsFromProofs.hs
  140. +46 −0 polyomino/QQ.hs
  141. +269 −0 polyomino/QuadraticField.hs
  142. +1 −0 polyomino/README
  143. +107 −0 polyomino/RandomGenerator.hs
  144. +251 −0 polyomino/RedBlackTree.hs
  145. +209 −0 polyomino/SchreierSims.hs
  146. +60 −0 polyomino/Six.hs
  147. +50 −0 polyomino/Trie.hs
  148. +198 −0 polyomino/UPoly.hs
  149. +254 −0 polyomino/UmbralCalculus.hs
View
@@ -0,0 +1,4 @@
+number_list = [x | x <- [1..999], or [x `mod` 3 == 0, x `mod` 5 == 0]]
+answer = sum number_list
+
+main = putStrLn (show answer)
View
@@ -0,0 +1,6 @@
+module Main where
+import EulerMath
+-- ghc --make -XParallelListComp -i /home/evan/euler/common/euler_math.hs euler_problem.hs
+
+nums = filter even (fibs_to 4000000)
+main = putStrLn (show $ sum nums)
View
@@ -0,0 +1,5 @@
+module Main where
+import EulerMath
+
+answer = maximum $ factor 600851475143
+main = putStrLn (show answer)
View
Binary file not shown.
View
@@ -0,0 +1,7 @@
+module Main where
+import EulerMath
+
+candidates = [x * y | x <- [100..999], y <- [1000 - x..1000], y >= 100]
+answer = maximum $ filter is_palindrome candidates
+
+main = putStrLn $ show answer
View
@@ -0,0 +1,3 @@
+square x = x * x
+answer = square (sum [1..100]) - sum [square x | x <- [1..100]]
+main = putStrLn $ show answer
View
@@ -0,0 +1,5 @@
+module Main where
+import EulerMath
+
+answer = head $ reverse $ take 10001 [x | x <- [1..], factor x == [x]]
+main = putStrLn $ show answer
View
@@ -0,0 +1,37 @@
+module Main where
+import Data.Char
+
+digits = [
+ "73167176531330624919225119674426574742355349194934"
+ , "96983520312774506326239578318016984801869478851843"
+ , "85861560789112949495459501737958331952853208805511"
+ , "12540698747158523863050715693290963295227443043557"
+ , "66896648950445244523161731856403098711121722383113"
+ , "62229893423380308135336276614282806444486645238749"
+ , "30358907296290491560440772390713810515859307960866"
+ , "70172427121883998797908792274921901699720888093776"
+ , "65727333001053367881220235421809751254540594752243"
+ , "52584907711670556013604839586446706324415722155397"
+ , "53697817977846174064955149290862569321978468622482"
+ , "83972241375657056057490261407972968652414535100474"
+ , "82166370484403199890008895243450658541227588666881"
+ , "16427171479924442928230863465674813919123162824586"
+ , "17866458359124566529476545682848912883142607690042"
+ , "24219022671055626321111109370544217506941658960408"
+ , "07198403850962455444362981230987879927244284909188"
+ , "84580156166097919133875499200524063689912560717606"
+ , "05886116467109405077541002256983155200055935729725"
+ , "71636269561882670428252483600823257530420752963450"]
+
+big_number :: String
+big_number = foldl (++) "" digits
+
+five_sequences :: String -> [String]
+five_sequences s = if length s >= 5 then (take 5 s) : five_sequences (tail s) else []
+
+product_of_chars :: String -> Int
+product_of_chars s = product $ map digitToInt s
+
+answer = maximum $ map product_of_chars (five_sequences big_number)
+
+main = putStrLn $ show $ answer
View
@@ -0,0 +1,4 @@
+module Main where
+
+abc_triples = [[a, b, c] | a <- [1..998], b <- [a..999], let c = 1000 - a - b, a*a + b*b == c*c]
+main = putStrLn $ show $ product $ head abc_triples
View
@@ -0,0 +1,7 @@
+module Main where
+import EulerMath
+
+-- This is way inefficient but it still runs in under a minute. When I fix
+-- is_prime to be fast it will be a bit better (a sieve would be better still)
+answer = sum [x | x <- [2..1999999], is_prime x]
+main = putStrLn $ show answer
View
Binary file not shown.
View
@@ -0,0 +1,71 @@
+module Main where
+import EulerLib
+
+type Row = [Int]
+type Grid = [Row]
+type TransformGrid = Grid -> Grid
+
+str_grid :: [String]
+str_grid = [
+ "08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08"
+ , "49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00"
+ , "81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65"
+ , "52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91"
+ , "22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80"
+ , "24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50"
+ , "32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70"
+ , "67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21"
+ , "24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72"
+ , "21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95"
+ , "78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92"
+ , "16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57"
+ , "86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58"
+ , "19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40"
+ , "04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66"
+ , "88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69"
+ , "04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36"
+ , "20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16"
+ , "20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54"
+ , "01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48"]
+
+grid :: Grid
+grid = map ((map read) . words) str_grid
+
+fours :: Row -> [[Int]]
+fours r = if length r >= 4 then take 4 r : fours (tail r) else []
+
+greatest_in_row :: Row -> Int
+greatest_in_row r = if length r < 4 then 0 else maximum $ map product (fours r)
+
+greatest_prod :: Grid -> Int
+greatest_prod g = maximum $ map greatest_in_row g
+
+-- these prepare the grid somehow
+horizontals, verticals, diagse, diagnw :: TransformGrid
+
+-- prepares a grid for finding horizontal products
+horizontals = id
+
+-- prepares a grid for finding vertical products
+verticals [] = []
+verticals g = if head g == [] then [] else map head (filter (/= []) g) : verticals (map tail (filter (/= []) g))
+
+prefix_zeroes :: (Int, Row) -> Row
+prefix_zeroes (n, xs) = (replicate n 0) ++ xs
+
+unprefix_zeroes :: Grid -> Grid
+unprefix_zeroes g = map (unprefix_row . reverse . unprefix_row) g
+ where
+ unprefix_row [] = []
+ unprefix_row (x:xs) = if x == 0 then unprefix_row xs else x:xs
+
+-- prepares a grid for finding diagonal products in the direction of y = x
+diagnw = diagse . (map reverse)
+
+-- prepares a grid for finding diagonal products in the direction of y = -x
+diagse g = unprefix_zeroes $ verticals $ reverse (map prefix_zeroes (enumerate (reverse (verticals g))))
+
+solution :: Int
+solution = maximum $ [greatest_prod (fn grid) | fn <- [horizontals, verticals, diagse, diagnw]]
+
+main = putStrLn $ show $ solution
View
@@ -0,0 +1,4 @@
+module Main where
+import EulerMath
+
+main = putStrLn $ show $ head $ filter (\x -> (length (divisors x)) > 500) triangle_numbers
View
@@ -0,0 +1,105 @@
+numbers :: [Integer]
+numbers = [
+ 37107287533902102798797998220837590246510135740250
+ , 46376937677490009712648124896970078050417018260538
+ , 74324986199524741059474233309513058123726617309629
+ , 91942213363574161572522430563301811072406154908250
+ , 23067588207539346171171980310421047513778063246676
+ , 89261670696623633820136378418383684178734361726757
+ , 28112879812849979408065481931592621691275889832738
+ , 44274228917432520321923589422876796487670272189318
+ , 47451445736001306439091167216856844588711603153276
+ , 70386486105843025439939619828917593665686757934951
+ , 62176457141856560629502157223196586755079324193331
+ , 64906352462741904929101432445813822663347944758178
+ , 92575867718337217661963751590579239728245598838407
+ , 58203565325359399008402633568948830189458628227828
+ , 80181199384826282014278194139940567587151170094390
+ , 35398664372827112653829987240784473053190104293586
+ , 86515506006295864861532075273371959191420517255829
+ , 71693888707715466499115593487603532921714970056938
+ , 54370070576826684624621495650076471787294438377604
+ , 53282654108756828443191190634694037855217779295145
+ , 36123272525000296071075082563815656710885258350721
+ , 45876576172410976447339110607218265236877223636045
+ , 17423706905851860660448207621209813287860733969412
+ , 81142660418086830619328460811191061556940512689692
+ , 51934325451728388641918047049293215058642563049483
+ , 62467221648435076201727918039944693004732956340691
+ , 15732444386908125794514089057706229429197107928209
+ , 55037687525678773091862540744969844508330393682126
+ , 18336384825330154686196124348767681297534375946515
+ , 80386287592878490201521685554828717201219257766954
+ , 78182833757993103614740356856449095527097864797581
+ , 16726320100436897842553539920931837441497806860984
+ , 48403098129077791799088218795327364475675590848030
+ , 87086987551392711854517078544161852424320693150332
+ , 59959406895756536782107074926966537676326235447210
+ , 69793950679652694742597709739166693763042633987085
+ , 41052684708299085211399427365734116182760315001271
+ , 65378607361501080857009149939512557028198746004375
+ , 35829035317434717326932123578154982629742552737307
+ , 94953759765105305946966067683156574377167401875275
+ , 88902802571733229619176668713819931811048770190271
+ , 25267680276078003013678680992525463401061632866526
+ , 36270218540497705585629946580636237993140746255962
+ , 24074486908231174977792365466257246923322810917141
+ , 91430288197103288597806669760892938638285025333403
+ , 34413065578016127815921815005561868836468420090470
+ , 23053081172816430487623791969842487255036638784583
+ , 11487696932154902810424020138335124462181441773470
+ , 63783299490636259666498587618221225225512486764533
+ , 67720186971698544312419572409913959008952310058822
+ , 95548255300263520781532296796249481641953868218774
+ , 76085327132285723110424803456124867697064507995236
+ , 37774242535411291684276865538926205024910326572967
+ , 23701913275725675285653248258265463092207058596522
+ , 29798860272258331913126375147341994889534765745501
+ , 18495701454879288984856827726077713721403798879715
+ , 38298203783031473527721580348144513491373226651381
+ , 34829543829199918180278916522431027392251122869539
+ , 40957953066405232632538044100059654939159879593635
+ , 29746152185502371307642255121183693803580388584903
+ , 41698116222072977186158236678424689157993532961922
+ , 62467957194401269043877107275048102390895523597457
+ , 23189706772547915061505504953922979530901129967519
+ , 86188088225875314529584099251203829009407770775672
+ , 11306739708304724483816533873502340845647058077308
+ , 82959174767140363198008187129011875491310547126581
+ , 97623331044818386269515456334926366572897563400500
+ , 42846280183517070527831839425882145521227251250327
+ , 55121603546981200581762165212827652751691296897789
+ , 32238195734329339946437501907836945765883352399886
+ , 75506164965184775180738168837861091527357929701337
+ , 62177842752192623401942399639168044983993173312731
+ , 32924185707147349566916674687634660915035914677504
+ , 99518671430235219628894890102423325116913619626622
+ , 73267460800591547471830798392868535206946944540724
+ , 76841822524674417161514036427982273348055556214818
+ , 97142617910342598647204516893989422179826088076852
+ , 87783646182799346313767754307809363333018982642090
+ , 10848802521674670883215120185883543223812876952786
+ , 71329612474782464538636993009049310363619763878039
+ , 62184073572399794223406235393808339651327408011116
+ , 66627891981488087797941876876144230030984490851411
+ , 60661826293682836764744779239180335110989069790714
+ , 85786944089552990653640447425576083659976645795096
+ , 66024396409905389607120198219976047599490197230297
+ , 64913982680032973156037120041377903785566085089252
+ , 16730939319872750275468906903707539413042652315011
+ , 94809377245048795150954100921645863754710598436791
+ , 78639167021187492431995700641917969777599028300699
+ , 15368713711936614952811305876380278410754449733078
+ , 40789923115535562561142322423255033685442488917353
+ , 44889911501440648020369068063960672322193204149535
+ , 41503128880339536053299340368006977710650566631954
+ , 81234880673210146739058568557934581403627822703280
+ , 82616570773948327592232845941706525094512325230608
+ , 22918802058777319719839450180888072429661980811197
+ , 77158542502016545090413245809786882778948721859617
+ , 72107838435069186155435662884062257473692284509516
+ , 20849603980134001723930671666823555245252804609722
+ , 53503534226472524250874054075591789781264330331690]
+
+answer = take 10 $ show $ sum numbers
+main = putStrLn answer
View
No changes.
View
@@ -0,0 +1,18 @@
+module Main where
+import Data.List
+
+collatz :: Integral a => a -> a
+collatz n = if even n then n `div` 2 else 3 * n + 1
+
+collatz_len :: Int -> Int
+collatz_len =
+ let
+ cl 1 = 0
+ cl n = 1 + collatz_len (collatz n)
+ in (map cl [0..] !!)
+
+tuple_cmp :: (Int, Int) -> (Int, Int) -> Ordering
+tuple_cmp (a, b) (c, d) = compare b d
+
+answer = fst $ maximumBy tuple_cmp (map (\x -> (x, collatz_len x)) [1..999999])
+main = putStrLn $ show answer
View
@@ -0,0 +1,22 @@
+import sys
+sys.setrecursionlimit(100000)
+
+def collatz(n):
+ if n % 2 == 0:
+ return n / 2
+ else:
+ return 3 * n + 1
+
+collatz_len = {1: 1}
+def cl(n):
+ if n in collatz_len:
+ return collatz_len[n]
+ answer = 1 + cl(collatz(n))
+ collatz_len[n] = answer
+ return answer
+
+d = dict((k, cl(k)) for k in range(1, 1000000))
+max_v = max(d.values())
+for k, v in d.iteritems():
+ if v == max_v:
+ print k
View
@@ -0,0 +1,18 @@
+module Main where
+import Data.List
+
+collatz :: Integral a => a -> a
+collatz n = if even n then n `div` 2 else 3 * n + 1
+
+collatz_len :: Int -> Int
+collatz_len =
+ let
+ cl 1 = 0
+ cl n = 1 + collatz_len (collatz n)
+ in (map cl [0..] !!)
+
+tuple_cmp :: (Int, Int) -> (Int, Int) -> Ordering
+tuple_cmp (a, b) (c, d) = compare b d
+
+answer = fst $ maximumBy tuple_cmp (map (\x -> (x, collatz_len x)) [1..999999])
+main = putStrLn $ show answer
View
@@ -0,0 +1,10 @@
+module Main
+where
+import IO
+import Data.List
+
+main = print $ maximumBy (\a b -> compare (snd a) (snd b)) collatzip
+collatzip = zip [10..1000000] (map length $ map collatz_chain [10..1000000])
+collatz_chain :: Integer -> [Integer]
+collatz_chain 1 = [1]
+collatz_chain n = n : if even n then collatz_chain (n `div` 2) else collatz_chain (3 * n + 1)
View
@@ -0,0 +1,10 @@
+import Data.Array
+import Data.List
+
+syrs n = listArray (1,n) $ 0:[1 + syr n x | x <- [2..n]]
+ where
+ syr n x = if x' <= n then a ! x' else 1 + syr n x'
+ where x' = if even x then x `div` 2 else 3 * x + 1
+
+main = print $ foldl' maxBySnd (0,0) $ assocs $ syrs 1000000
+ where maxBySnd x@(_,a) y@(_,b) = if a > b then x else y
View
@@ -0,0 +1,27 @@
+I solve it this way:
+
+import Data.Array
+import Data.List
+import Data.Ord
+
+cache :: Array Integer Integer
+cache = array (1,n) ([(i, f i i) | i <- [1..n]])
+ where n = 1000000
+ f :: Integer -> Integer -> Integer
+ f _ 1 = 1
+ f x y = r + 1 + if c < x then cache!c else f x c
+ where (q, r) = quotRem y 2
+ c = (y + (2 * y + 1) * r) `div` 2
+
+ max' :: Integer -> Integer -> Integer
+ max' x y = case (comparing (cache!) x y) of
+ GT -> x
+ _ -> y
+
+ main :: IO()
+ main = do putStr (show((\x -> (x, cache!x)) (foldl1' max' $ indices $! cache)))
+
+
+ Using GHC-6.6:
+ * without pre-compilation 29.66 sec
+ * with pre-compilation 4.09 sec
View
@@ -0,0 +1,5 @@
+module Main where
+import EulerMath
+
+answer = nCr 40 20
+main = putStrLn $ show answer
View
@@ -0,0 +1,5 @@
+module Main where
+import Data.Char
+
+answer = sum $ map digitToInt $ show $ 2^1000
+main = putStrLn $ show answer
Oops, something went wrong.

0 comments on commit d1d9bff

Please sign in to comment.