euler-manager 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (618) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.travis.yml +2 -1
  4. data/README.md +27 -21
  5. data/Rakefile +3 -2
  6. data/config/config.rb +6 -2
  7. data/data/answers.yml +431 -430
  8. data/data/images/{p_015.gif → p015.gif} +0 -0
  9. data/data/images/{p_068_1.gif → p068_1.gif} +0 -0
  10. data/data/images/{p_068_2.gif → p068_2.gif} +0 -0
  11. data/data/images/{p_085.gif → p085.gif} +0 -0
  12. data/data/images/{p_086.gif → p086.gif} +0 -0
  13. data/data/images/{p_090.gif → p090.gif} +0 -0
  14. data/data/images/{p_091_1.gif → p091_1.gif} +0 -0
  15. data/data/images/{p_091_2.gif → p091_2.gif} +0 -0
  16. data/data/images/{p_107_1.gif → p107_1.gif} +0 -0
  17. data/data/images/{p_107_2.gif → p107_2.gif} +0 -0
  18. data/data/images/{p_109.gif → p109.gif} +0 -0
  19. data/data/images/{p_126.gif → p126.gif} +0 -0
  20. data/data/images/{p_128.gif → p128.gif} +0 -0
  21. data/data/images/{p_138.gif → p138.gif} +0 -0
  22. data/data/images/{p_139.gif → p139.gif} +0 -0
  23. data/data/images/{p_143_torricelli.gif → p143_torricelli.gif} +0 -0
  24. data/data/images/{p_144_1.gif → p144_1.gif} +0 -0
  25. data/data/images/{p_144_2.gif → p144_2.gif} +0 -0
  26. data/data/images/{p_147.gif → p147.gif} +0 -0
  27. data/data/images/{p_150.gif → p150.gif} +0 -0
  28. data/data/images/{p_151.gif → p151.gif} +0 -0
  29. data/data/images/{p_152_sum.gif → p152_sum.gif} +0 -0
  30. data/data/images/{p_153_formule1.gif → p153_formule1.gif} +0 -0
  31. data/data/images/{p_153_formule2.gif → p153_formule2.gif} +0 -0
  32. data/data/images/{p_153_formule5.gif → p153_formule5.gif} +0 -0
  33. data/data/images/{p_153_formule6.gif → p153_formule6.gif} +0 -0
  34. data/data/images/{p_154_pyramid.gif → p154_pyramid.gif} +0 -0
  35. data/data/images/{p_155_capacitors1.gif → p155_capacitors1.gif} +0 -0
  36. data/data/images/{p_155_capsform.gif → p155_capsform.gif} +0 -0
  37. data/data/images/{p_155_capsmu.gif → p155_capsmu.gif} +0 -0
  38. data/data/images/{p_161_k9.gif → p161_k9.gif} +0 -0
  39. data/data/images/{p_161_trio1.gif → p161_trio1.gif} +0 -0
  40. data/data/images/{p_161_trio3.gif → p161_trio3.gif} +0 -0
  41. data/data/images/{p_163.gif → p163.gif} +0 -0
  42. data/data/images/{p_173_square_laminas.gif → p173_square_laminas.gif} +0 -0
  43. data/data/images/{p_177_quad.gif → p177_quad.gif} +0 -0
  44. data/data/images/{p_184.gif → p184.gif} +0 -0
  45. data/data/images/{p_189_colours.gif → p189_colours.gif} +0 -0
  46. data/data/images/{p_189_grid.gif → p189_grid.gif} +0 -0
  47. data/data/images/{p_194_Fig.png → p194_Fig.png} +0 -0
  48. data/data/images/{p_194_GraphA.png → p194_GraphA.png} +0 -0
  49. data/data/images/{p_194_GraphB.png → p194_GraphB.png} +0 -0
  50. data/data/images/{p_199_circles_in_circles.gif → p199_circles_in_circles.gif} +0 -0
  51. data/data/images/{p_201_laserbeam.gif → p201_laserbeam.gif} +0 -0
  52. data/data/images/{p_208_robotwalk.gif → p208_robotwalk.gif} +0 -0
  53. data/data/images/{p_215_crackfree.gif → p215_crackfree.gif} +0 -0
  54. data/data/images/{p_220.gif → p220.gif} +0 -0
  55. data/data/images/{p_226_formula.gif → p226_formula.gif} +0 -0
  56. data/data/images/{p_226_scoop2.gif → p226_scoop2.gif} +0 -0
  57. data/data/images/{p_228.png → p228.png} +0 -0
  58. data/data/images/{p_237.gif → p237.gif} +0 -0
  59. data/data/images/{p_244_example.gif → p244_example.gif} +0 -0
  60. data/data/images/{p_244_start.gif → p244_start.gif} +0 -0
  61. data/data/images/{p_244_target.gif → p244_target.gif} +0 -0
  62. data/data/images/{p_246_anim.gif → p246_anim.gif} +0 -0
  63. data/data/images/{p_246_ellipse.gif → p246_ellipse.gif} +0 -0
  64. data/data/images/{p_247_hypersquares.gif → p247_hypersquares.gif} +0 -0
  65. data/data/images/{p_251_cardano.gif → p251_cardano.gif} +0 -0
  66. data/data/images/{p_252_convexhole.gif → p252_convexhole.gif} +0 -0
  67. data/data/images/{p_255_Example.gif → p255_Example.gif} +0 -0
  68. data/data/images/{p_255_Heron.gif → p255_Heron.gif} +0 -0
  69. data/data/images/{p_256_tatami3.gif → p256_tatami3.gif} +0 -0
  70. data/data/images/{p_257_bisector.gif → p257_bisector.gif} +0 -0
  71. data/data/images/{p_262_formula1.gif → p262_formula1.gif} +0 -0
  72. data/data/images/{p_264_TriangleCentres.gif → p264_TriangleCentres.gif} +0 -0
  73. data/data/images/{p_265_BinaryCircles.gif → p265_BinaryCircles.gif} +0 -0
  74. data/data/images/{p_270_CutSquare.gif → p270_CutSquare.gif} +0 -0
  75. data/data/images/{p_275_sculptures2.gif → p275_sculptures2.gif} +0 -0
  76. data/data/images/{p_281_pizza.gif → p281_pizza.gif} +0 -0
  77. data/data/images/{p_282_formula.gif → p282_formula.gif} +0 -0
  78. data/data/images/{p_282formula3.gif → p282formula3.gif} +0 -0
  79. data/data/images/{p_287_quadtree.gif → p287_quadtree.gif} +0 -0
  80. data/data/images/{p_289_euler.gif → p289_euler.gif} +0 -0
  81. data/data/images/{p_291_formula.gif → p291_formula.gif} +0 -0
  82. data/data/images/{p_299_ThreeSimTri.gif → p299_ThreeSimTri.gif} +0 -0
  83. data/data/images/{p_300_protein.gif → p300_protein.gif} +0 -0
  84. data/data/images/{p_306_pstrip.gif → p306_pstrip.gif} +0 -0
  85. data/data/images/{p_309_ladders.gif → p309_ladders.gif} +0 -0
  86. data/data/images/{p_311_biclinic.gif → p311_biclinic.gif} +0 -0
  87. data/data/images/{p_312_sierpinsky8t.gif → p312_sierpinsky8t.gif} +0 -0
  88. data/data/images/{p_312_sierpinskyAt.gif → p312_sierpinskyAt.gif} +0 -0
  89. data/data/images/{p_313_sliding_game_1.gif → p313_sliding_game_1.gif} +0 -0
  90. data/data/images/{p_313_sliding_game_2.gif → p313_sliding_game_2.gif} +0 -0
  91. data/data/images/{p_314_landgrab.gif → p314_landgrab.gif} +0 -0
  92. data/data/images/{p_315_clocks.gif → p315_clocks.gif} +0 -0
  93. data/data/images/{p_316_decexp1.gif → p316_decexp1.gif} +0 -0
  94. data/data/images/{p_316_decexp2.gif → p316_decexp2.gif} +0 -0
  95. data/data/images/{p_316_decexp3.gif → p316_decexp3.gif} +0 -0
  96. data/data/images/{p_321_swapping_counters_1.gif → p321_swapping_counters_1.gif} +0 -0
  97. data/data/images/{p_321_swapping_counters_2.gif → p321_swapping_counters_2.gif} +0 -0
  98. data/data/images/{p_326_formula1.gif → p326_formula1.gif} +0 -0
  99. data/data/images/{p_326_formula2.gif → p326_formula2.gif} +0 -0
  100. data/data/images/{p_327_rooms_of_doom.gif → p327_rooms_of_doom.gif} +0 -0
  101. data/data/images/{p_328_sum1.gif → p328_sum1.gif} +0 -0
  102. data/data/images/{p_328_sum2.gif → p328_sum2.gif} +0 -0
  103. data/data/images/{p_330_formula.gif → p330_formula.gif} +0 -0
  104. data/data/images/{p_331_crossflips1.gif → p331_crossflips1.gif} +0 -0
  105. data/data/images/{p_331_crossflips2.gif → p331_crossflips2.gif} +0 -0
  106. data/data/images/{p_331_crossflips3.gif → p331_crossflips3.gif} +0 -0
  107. data/data/images/{p_332_spherical.jpg → p332_spherical.jpg} +0 -0
  108. data/data/images/{p_332_sum.gif → p332_sum.gif} +0 -0
  109. data/data/images/{p_334_beans.gif → p334_beans.gif} +0 -0
  110. data/data/images/{p_334_cases.gif → p334_cases.gif} +0 -0
  111. data/data/images/{p_334_lfloor.gif → p334_lfloor.gif} +0 -0
  112. data/data/images/{p_334_oplus.gif → p334_oplus.gif} +0 -0
  113. data/data/images/{p_334_rfloor.gif → p334_rfloor.gif} +0 -0
  114. data/data/images/{p_335_mancala.gif → p335_mancala.gif} +0 -0
  115. data/data/images/{p_335_sum.gif → p335_sum.gif} +0 -0
  116. data/data/images/{p_336_maximix.gif → p336_maximix.gif} +0 -0
  117. data/data/images/{p_338_gridpaper.gif → p338_gridpaper.gif} +0 -0
  118. data/data/images/{p_340_formula.gif → p340_formula.gif} +0 -0
  119. data/data/images/{p_344_silverdollar.gif → p344_silverdollar.gif} +0 -0
  120. data/data/images/{p_351_hexorchard.png → p351_hexorchard.png} +0 -0
  121. data/data/images/{p_354_bee_honeycomb.png → p354_bee_honeycomb.png} +0 -0
  122. data/data/images/{p_356_cubicpoly1.gif → p356_cubicpoly1.gif} +0 -0
  123. data/data/images/{p_356_cubicpoly2.gif → p356_cubicpoly2.gif} +0 -0
  124. data/data/images/{p_361_Thue-Morse1.gif → p361_Thue-Morse1.gif} +0 -0
  125. data/data/images/p363_bezier.png +0 -0
  126. data/data/images/{p_364_comf_dist.gif → p364_comf_dist.gif} +0 -0
  127. data/data/images/{p_372_pencilray1.jpg → p372_pencilray1.jpg} +0 -0
  128. data/data/images/{p_372_pencilray2.gif → p372_pencilray2.gif} +0 -0
  129. data/data/images/{p_380_mazes.gif → p380_mazes.gif} +0 -0
  130. data/data/images/{p_384_formula.gif → p384_formula.gif} +0 -0
  131. data/data/images/{p_385_ellipsetriangle.png → p385_ellipsetriangle.png} +0 -0
  132. data/data/images/{p_394_eatpie.gif → p394_eatpie.gif} +0 -0
  133. data/data/images/{p_395_pythagorean.gif → p395_pythagorean.gif} +0 -0
  134. data/data/images/{p_404_c_ellipse.gif → p404_c_ellipse.gif} +0 -0
  135. data/data/images/{p_405_tile1.png → p405_tile1.png} +0 -0
  136. data/data/images/{p_405_tile2.gif → p405_tile2.gif} +0 -0
  137. data/data/images/{p_420_matrix.gif → p420_matrix.gif} +0 -0
  138. data/data/images/{p_424_kakuro1.gif → p424_kakuro1.gif} +0 -0
  139. data/data/images/{p_426_baxball1.gif → p426_baxball1.gif} +0 -0
  140. data/data/images/{p_426_baxball2.gif → p426_baxball2.gif} +0 -0
  141. data/data/images/{p_430_flips.gif → p430_flips.gif} +0 -0
  142. data/data/problems/1.yml +1 -1
  143. data/data/problems/10.yml +6 -4
  144. data/data/problems/100.yml +2 -2
  145. data/data/problems/101.yml +15 -19
  146. data/data/problems/102.yml +9 -10
  147. data/data/problems/103.yml +7 -8
  148. data/data/problems/104.yml +2 -2
  149. data/data/problems/105.yml +4 -4
  150. data/data/problems/106.yml +3 -3
  151. data/data/problems/107.yml +12 -12
  152. data/data/problems/108.yml +8 -14
  153. data/data/problems/109.yml +12 -11
  154. data/data/problems/11.yml +21 -24
  155. data/data/problems/110.yml +9 -10
  156. data/data/problems/111.yml +1 -1
  157. data/data/problems/112.yml +1 -1
  158. data/data/problems/113.yml +1 -1
  159. data/data/problems/114.yml +2 -2
  160. data/data/problems/115.yml +1 -1
  161. data/data/problems/116.yml +11 -11
  162. data/data/problems/117.yml +3 -3
  163. data/data/problems/118.yml +1 -1
  164. data/data/problems/119.yml +1 -1
  165. data/data/problems/12.yml +6 -6
  166. data/data/problems/120.yml +4 -4
  167. data/data/problems/121.yml +1 -1
  168. data/data/problems/122.yml +10 -18
  169. data/data/problems/123.yml +3 -3
  170. data/data/problems/124.yml +17 -19
  171. data/data/problems/125.yml +1 -1
  172. data/data/problems/126.yml +12 -11
  173. data/data/problems/127.yml +8 -8
  174. data/data/problems/128.yml +3 -3
  175. data/data/problems/129.yml +1 -1
  176. data/data/problems/13.yml +1 -1
  177. data/data/problems/130.yml +6 -7
  178. data/data/problems/131.yml +2 -2
  179. data/data/problems/132.yml +2 -2
  180. data/data/problems/133.yml +2 -2
  181. data/data/problems/134.yml +3 -3
  182. data/data/problems/135.yml +3 -3
  183. data/data/problems/136.yml +3 -3
  184. data/data/problems/137.yml +9 -9
  185. data/data/problems/138.yml +5 -5
  186. data/data/problems/139.yml +2 -2
  187. data/data/problems/14.yml +8 -13
  188. data/data/problems/140.yml +5 -5
  189. data/data/problems/141.yml +2 -2
  190. data/data/problems/142.yml +3 -4
  191. data/data/problems/143.yml +3 -3
  192. data/data/problems/144.yml +4 -4
  193. data/data/problems/145.yml +1 -1
  194. data/data/problems/146.yml +1 -1
  195. data/data/problems/147.yml +6 -6
  196. data/data/problems/148.yml +8 -8
  197. data/data/problems/149.yml +12 -25
  198. data/data/problems/15.yml +4 -4
  199. data/data/problems/150.yml +16 -17
  200. data/data/problems/151.yml +3 -3
  201. data/data/problems/152.yml +2 -2
  202. data/data/problems/153.yml +30 -35
  203. data/data/problems/154.yml +16 -12
  204. data/data/problems/155.yml +7 -6
  205. data/data/problems/156.yml +8 -9
  206. data/data/problems/157.yml +4 -6
  207. data/data/problems/158.yml +12 -12
  208. data/data/problems/159.yml +14 -16
  209. data/data/problems/16.yml +1 -1
  210. data/data/problems/160.yml +3 -3
  211. data/data/problems/161.yml +6 -6
  212. data/data/problems/162.yml +3 -3
  213. data/data/problems/163.yml +3 -3
  214. data/data/problems/164.yml +3 -4
  215. data/data/problems/165.yml +12 -12
  216. data/data/problems/166.yml +6 -8
  217. data/data/problems/167.yml +6 -7
  218. data/data/problems/168.yml +5 -7
  219. data/data/problems/169.yml +2 -2
  220. data/data/problems/17.yml +5 -5
  221. data/data/problems/170.yml +9 -10
  222. data/data/problems/171.yml +4 -5
  223. data/data/problems/172.yml +3 -4
  224. data/data/problems/173.yml +2 -2
  225. data/data/problems/174.yml +4 -4
  226. data/data/problems/175.yml +12 -13
  227. data/data/problems/176.yml +1 -1
  228. data/data/problems/177.yml +2 -2
  229. data/data/problems/178.yml +6 -6
  230. data/data/problems/179.yml +4 -4
  231. data/data/problems/18.yml +11 -12
  232. data/data/problems/180.yml +9 -12
  233. data/data/problems/181.yml +1 -1
  234. data/data/problems/182.yml +14 -16
  235. data/data/problems/183.yml +12 -15
  236. data/data/problems/184.yml +3 -3
  237. data/data/problems/185.yml +11 -11
  238. data/data/problems/186.yml +10 -11
  239. data/data/problems/187.yml +8 -8
  240. data/data/problems/188.yml +4 -4
  241. data/data/problems/189.yml +4 -4
  242. data/data/problems/19.yml +1 -1
  243. data/data/problems/190.yml +2 -2
  244. data/data/problems/191.yml +5 -5
  245. data/data/problems/192.yml +10 -14
  246. data/data/problems/193.yml +1 -1
  247. data/data/problems/194.yml +10 -10
  248. data/data/problems/195.yml +5 -6
  249. data/data/problems/196.yml +15 -14
  250. data/data/problems/197.yml +7 -8
  251. data/data/problems/198.yml +8 -14
  252. data/data/problems/199.yml +3 -3
  253. data/data/problems/2.yml +8 -7
  254. data/data/problems/20.yml +4 -9
  255. data/data/problems/200.yml +7 -8
  256. data/data/problems/201.yml +14 -14
  257. data/data/problems/202.yml +2 -2
  258. data/data/problems/203.yml +21 -13
  259. data/data/problems/204.yml +7 -7
  260. data/data/problems/205.yml +6 -6
  261. data/data/problems/206.yml +1 -1
  262. data/data/problems/207.yml +10 -10
  263. data/data/problems/208.yml +4 -5
  264. data/data/problems/209.yml +6 -6
  265. data/data/problems/21.yml +7 -7
  266. data/data/problems/210.yml +6 -6
  267. data/data/problems/211.yml +2 -2
  268. data/data/problems/212.yml +16 -20
  269. data/data/problems/213.yml +6 -6
  270. data/data/problems/214.yml +9 -10
  271. data/data/problems/215.yml +5 -5
  272. data/data/problems/216.yml +5 -6
  273. data/data/problems/217.yml +7 -12
  274. data/data/problems/218.yml +9 -10
  275. data/data/problems/219.yml +5 -5
  276. data/data/problems/22.yml +3 -3
  277. data/data/problems/220.yml +15 -16
  278. data/data/problems/221.yml +8 -8
  279. data/data/problems/222.yml +1 -1
  280. data/data/problems/223.yml +5 -6
  281. data/data/problems/224.yml +5 -6
  282. data/data/problems/225.yml +2 -2
  283. data/data/problems/226.yml +8 -9
  284. data/data/problems/227.yml +3 -3
  285. data/data/problems/228.yml +17 -16
  286. data/data/problems/229.yml +16 -19
  287. data/data/problems/23.yml +1 -3
  288. data/data/problems/230.yml +9 -11
  289. data/data/problems/231.yml +5 -8
  290. data/data/problems/232.yml +1 -1
  291. data/data/problems/233.yml +2 -2
  292. data/data/problems/234.yml +11 -13
  293. data/data/problems/235.yml +2 -2
  294. data/data/problems/236.yml +13 -19
  295. data/data/problems/237.yml +4 -4
  296. data/data/problems/238.yml +16 -19
  297. data/data/problems/239.yml +2 -2
  298. data/data/problems/24.yml +2 -2
  299. data/data/problems/240.yml +7 -7
  300. data/data/problems/241.yml +4 -7
  301. data/data/problems/242.yml +5 -6
  302. data/data/problems/243.yml +13 -13
  303. data/data/problems/244.yml +15 -15
  304. data/data/problems/245.yml +8 -20
  305. data/data/problems/246.yml +11 -12
  306. data/data/problems/247.yml +11 -12
  307. data/data/problems/248.yml +1 -1
  308. data/data/problems/249.yml +2 -2
  309. data/data/problems/25.yml +8 -12
  310. data/data/problems/250.yml +4 -4
  311. data/data/problems/251.yml +4 -4
  312. data/data/problems/252.yml +13 -20
  313. data/data/problems/253.yml +9 -8
  314. data/data/problems/254.yml +3 -3
  315. data/data/problems/255.yml +15 -37
  316. data/data/problems/256.yml +19 -24
  317. data/data/problems/257.yml +8 -10
  318. data/data/problems/258.yml +9 -7
  319. data/data/problems/259.yml +1 -1
  320. data/data/problems/26.yml +11 -11
  321. data/data/problems/260.yml +15 -18
  322. data/data/problems/261.yml +15 -13
  323. data/data/problems/262.yml +15 -14
  324. data/data/problems/263.yml +13 -13
  325. data/data/problems/264.yml +10 -11
  326. data/data/problems/265.yml +2 -2
  327. data/data/problems/266.yml +7 -7
  328. data/data/problems/267.yml +1 -1
  329. data/data/problems/268.yml +1 -1
  330. data/data/problems/269.yml +3 -3
  331. data/data/problems/27.yml +12 -15
  332. data/data/problems/270.yml +4 -4
  333. data/data/problems/271.yml +5 -6
  334. data/data/problems/272.yml +5 -7
  335. data/data/problems/273.yml +4 -4
  336. data/data/problems/274.yml +4 -5
  337. data/data/problems/275.yml +4 -4
  338. data/data/problems/276.yml +5 -6
  339. data/data/problems/277.yml +7 -8
  340. data/data/problems/278.yml +16 -19
  341. data/data/problems/279.yml +3 -4
  342. data/data/problems/28.yml +6 -6
  343. data/data/problems/280.yml +2 -2
  344. data/data/problems/281.yml +4 -6
  345. data/data/problems/282.yml +3 -3
  346. data/data/problems/283.yml +6 -7
  347. data/data/problems/284.yml +7 -8
  348. data/data/problems/285.yml +4 -4
  349. data/data/problems/286.yml +2 -2
  350. data/data/problems/287.yml +19 -24
  351. data/data/problems/288.yml +7 -8
  352. data/data/problems/289.yml +11 -11
  353. data/data/problems/29.yml +10 -13
  354. data/data/problems/290.yml +3 -4
  355. data/data/problems/291.yml +4 -4
  356. data/data/problems/292.yml +5 -6
  357. data/data/problems/293.yml +9 -10
  358. data/data/problems/294.yml +12 -7
  359. data/data/problems/295.yml +11 -13
  360. data/data/problems/296.yml +9 -9
  361. data/data/problems/297.yml +7 -9
  362. data/data/problems/298.yml +32 -40
  363. data/data/problems/299.yml +17 -19
  364. data/data/problems/3.yml +6 -4
  365. data/data/problems/30.yml +1 -1
  366. data/data/problems/300.yml +14 -14
  367. data/data/problems/301.yml +9 -10
  368. data/data/problems/302.yml +5 -5
  369. data/data/problems/303.yml +4 -4
  370. data/data/problems/304.yml +7 -9
  371. data/data/problems/305.yml +4 -5
  372. data/data/problems/306.yml +10 -12
  373. data/data/problems/307.yml +4 -4
  374. data/data/problems/308.yml +4 -4
  375. data/data/problems/309.yml +11 -9
  376. data/data/problems/31.yml +2 -2
  377. data/data/problems/310.yml +6 -9
  378. data/data/problems/311.yml +10 -12
  379. data/data/problems/312.yml +10 -9
  380. data/data/problems/313.yml +5 -5
  381. data/data/problems/314.yml +8 -9
  382. data/data/problems/315.yml +35 -38
  383. data/data/problems/316.yml +17 -16
  384. data/data/problems/317.yml +8 -7
  385. data/data/problems/318.yml +14 -29
  386. data/data/problems/319.yml +10 -12
  387. data/data/problems/32.yml +2 -2
  388. data/data/problems/320.yml +2 -2
  389. data/data/problems/321.yml +12 -11
  390. data/data/problems/322.yml +4 -5
  391. data/data/problems/323.yml +7 -9
  392. data/data/problems/324.yml +7 -9
  393. data/data/problems/325.yml +2 -2
  394. data/data/problems/326.yml +3 -3
  395. data/data/problems/327.yml +19 -22
  396. data/data/problems/328.yml +23 -23
  397. data/data/problems/329.yml +6 -6
  398. data/data/problems/33.yml +2 -2
  399. data/data/problems/330.yml +12 -16
  400. data/data/problems/331.yml +16 -18
  401. data/data/problems/332.yml +10 -10
  402. data/data/problems/333.yml +15 -16
  403. data/data/problems/334.yml +17 -19
  404. data/data/problems/335.yml +3 -3
  405. data/data/problems/336.yml +5 -5
  406. data/data/problems/337.yml +7 -8
  407. data/data/problems/338.yml +18 -24
  408. data/data/problems/339.yml +3 -3
  409. data/data/problems/34.yml +1 -1
  410. data/data/problems/340.yml +7 -7
  411. data/data/problems/341.yml +4 -5
  412. data/data/problems/342.yml +6 -9
  413. data/data/problems/343.yml +8 -13
  414. data/data/problems/344.yml +8 -8
  415. data/data/problems/345.yml +17 -16
  416. data/data/problems/346.yml +6 -6
  417. data/data/problems/347.yml +8 -10
  418. data/data/problems/348.yml +5 -5
  419. data/data/problems/349.yml +4 -4
  420. data/data/problems/35.yml +1 -1
  421. data/data/problems/350.yml +5 -6
  422. data/data/problems/351.yml +7 -7
  423. data/data/problems/352.yml +13 -14
  424. data/data/problems/353.yml +2 -2
  425. data/data/problems/354.yml +6 -8
  426. data/data/problems/355.yml +4 -4
  427. data/data/problems/356.yml +5 -4
  428. data/data/problems/357.yml +3 -3
  429. data/data/problems/358.yml +11 -16
  430. data/data/problems/359.yml +12 -12
  431. data/data/problems/36.yml +1 -1
  432. data/data/problems/360.yml +4 -4
  433. data/data/problems/361.yml +9 -9
  434. data/data/problems/362.yml +8 -15
  435. data/data/problems/363.yml +29 -29
  436. data/data/problems/364.yml +4 -4
  437. data/data/problems/365.yml +3 -3
  438. data/data/problems/366.yml +16 -19
  439. data/data/problems/367.yml +11 -11
  440. data/data/problems/368.yml +14 -18
  441. data/data/problems/369.yml +2 -2
  442. data/data/problems/37.yml +1 -1
  443. data/data/problems/370.yml +4 -4
  444. data/data/problems/371.yml +5 -5
  445. data/data/problems/372.yml +6 -7
  446. data/data/problems/373.yml +10 -6
  447. data/data/problems/374.yml +11 -13
  448. data/data/problems/375.yml +11 -14
  449. data/data/problems/376.yml +19 -19
  450. data/data/problems/377.yml +5 -5
  451. data/data/problems/378.yml +8 -9
  452. data/data/problems/379.yml +10 -9
  453. data/data/problems/38.yml +9 -11
  454. data/data/problems/380.yml +8 -10
  455. data/data/problems/381.yml +6 -10
  456. data/data/problems/382.yml +12 -13
  457. data/data/problems/383.yml +5 -6
  458. data/data/problems/384.yml +14 -18
  459. data/data/problems/385.yml +12 -14
  460. data/data/problems/386.yml +4 -5
  461. data/data/problems/387.yml +13 -14
  462. data/data/problems/388.yml +6 -6
  463. data/data/problems/389.yml +3 -3
  464. data/data/problems/39.yml +2 -2
  465. data/data/problems/390.yml +12 -8
  466. data/data/problems/391.yml +18 -20
  467. data/data/problems/392.yml +9 -9
  468. data/data/problems/393.yml +8 -8
  469. data/data/problems/394.yml +14 -15
  470. data/data/problems/395.yml +16 -15
  471. data/data/problems/396.yml +13 -16
  472. data/data/problems/397.yml +4 -6
  473. data/data/problems/398.yml +8 -9
  474. data/data/problems/399.yml +18 -19
  475. data/data/problems/4.yml +2 -2
  476. data/data/problems/40.yml +2 -2
  477. data/data/problems/400.yml +10 -9
  478. data/data/problems/401.yml +6 -7
  479. data/data/problems/402.yml +7 -9
  480. data/data/problems/403.yml +9 -10
  481. data/data/problems/404.yml +8 -10
  482. data/data/problems/405.yml +10 -10
  483. data/data/problems/406.yml +24 -30
  484. data/data/problems/407.yml +6 -10
  485. data/data/problems/408.yml +10 -10
  486. data/data/problems/409.yml +12 -7
  487. data/data/problems/41.yml +1 -1
  488. data/data/problems/410.yml +5 -6
  489. data/data/problems/411.yml +10 -13
  490. data/data/problems/412.yml +10 -10
  491. data/data/problems/413.yml +6 -7
  492. data/data/problems/414.yml +26 -28
  493. data/data/problems/415.yml +12 -13
  494. data/data/problems/416.yml +4 -4
  495. data/data/problems/417.yml +12 -14
  496. data/data/problems/418.yml +13 -10
  497. data/data/problems/419.yml +11 -13
  498. data/data/problems/42.yml +2 -2
  499. data/data/problems/420.yml +8 -8
  500. data/data/problems/421.yml +8 -13
  501. data/data/problems/422.yml +8 -8
  502. data/data/problems/423.yml +11 -12
  503. data/data/problems/424.yml +10 -10
  504. data/data/problems/425.yml +7 -7
  505. data/data/problems/426.yml +9 -9
  506. data/data/problems/427.yml +12 -13
  507. data/data/problems/428.yml +17 -20
  508. data/data/problems/429.yml +5 -5
  509. data/data/problems/43.yml +1 -1
  510. data/data/problems/430.yml +6 -7
  511. data/data/problems/44.yml +4 -4
  512. data/data/problems/45.yml +4 -4
  513. data/data/problems/46.yml +6 -9
  514. data/data/problems/47.yml +5 -8
  515. data/data/problems/48.yml +1 -1
  516. data/data/problems/49.yml +1 -1
  517. data/data/problems/5.yml +1 -1
  518. data/data/problems/50.yml +1 -1
  519. data/data/problems/51.yml +1 -3
  520. data/data/problems/52.yml +1 -1
  521. data/data/problems/53.yml +6 -12
  522. data/data/problems/54.yml +17 -16
  523. data/data/problems/55.yml +3 -3
  524. data/data/problems/56.yml +2 -2
  525. data/data/problems/57.yml +9 -10
  526. data/data/problems/58.yml +11 -11
  527. data/data/problems/59.yml +2 -2
  528. data/data/problems/6.yml +2 -2
  529. data/data/problems/60.yml +1 -1
  530. data/data/problems/61.yml +7 -7
  531. data/data/problems/62.yml +1 -1
  532. data/data/problems/63.yml +1 -1
  533. data/data/problems/64.yml +30 -44
  534. data/data/problems/65.yml +19 -19
  535. data/data/problems/66.yml +9 -12
  536. data/data/problems/67.yml +9 -9
  537. data/data/problems/68.yml +3 -3
  538. data/data/problems/69.yml +3 -3
  539. data/data/problems/7.yml +1 -1
  540. data/data/problems/70.yml +4 -4
  541. data/data/problems/71.yml +4 -4
  542. data/data/problems/72.yml +4 -4
  543. data/data/problems/73.yml +4 -4
  544. data/data/problems/74.yml +9 -16
  545. data/data/problems/75.yml +3 -3
  546. data/data/problems/76.yml +1 -1
  547. data/data/problems/77.yml +1 -1
  548. data/data/problems/78.yml +8 -8
  549. data/data/problems/79.yml +2 -2
  550. data/data/problems/8.yml +12 -13
  551. data/data/problems/80.yml +1 -1
  552. data/data/problems/81.yml +8 -10
  553. data/data/problems/82.yml +10 -11
  554. data/data/problems/83.yml +10 -11
  555. data/data/problems/84.yml +45 -37
  556. data/data/problems/85.yml +2 -2
  557. data/data/problems/86.yml +8 -8
  558. data/data/problems/87.yml +1 -1
  559. data/data/problems/88.yml +11 -22
  560. data/data/problems/89.yml +14 -14
  561. data/data/problems/9.yml +6 -7
  562. data/data/problems/90.yml +7 -7
  563. data/data/problems/91.yml +6 -8
  564. data/data/problems/92.yml +6 -11
  565. data/data/problems/93.yml +11 -12
  566. data/data/problems/94.yml +1 -1
  567. data/data/problems/95.yml +2 -2
  568. data/data/problems/96.yml +7 -9
  569. data/data/problems/97.yml +3 -3
  570. data/data/problems/98.yml +2 -2
  571. data/data/problems/99.yml +4 -4
  572. data/euler-manager.gemspec +2 -2
  573. data/example/1/README.md +1 -1
  574. data/example/1/ruby/1.rb +7 -1
  575. data/example/1/scala/1.scala +1 -1
  576. data/example/15/README.md +4 -4
  577. data/example/2/README.md +1 -4
  578. data/languages/c.rb +22 -0
  579. data/languages/elixir.rb +25 -0
  580. data/languages/java.rb +3 -2
  581. data/languages/perl.rb +25 -0
  582. data/languages/php.rb +25 -0
  583. data/lib/euler/version.rb +1 -1
  584. data/rake/clean.rake +0 -2
  585. data/rake/sha_answers.rake +20 -0
  586. data/rake/update.rake +5 -2
  587. data/spec/euler_spec.rb +5 -0
  588. data/templates/c.c +11 -0
  589. data/templates/elixir.ex +1 -0
  590. data/templates/perl.pl +3 -0
  591. data/templates/php.php +5 -0
  592. metadata +148 -164
  593. data/data/images/blackdot.gif +0 -0
  594. data/data/images/bracket_left.gif +0 -0
  595. data/data/images/bracket_right.gif +0 -0
  596. data/data/images/sod_13.gif +0 -119
  597. data/data/images/symbol_asymp.gif +0 -0
  598. data/data/images/symbol_cong.gif +0 -0
  599. data/data/images/symbol_ge.gif +0 -0
  600. data/data/images/symbol_gt.gif +0 -0
  601. data/data/images/symbol_implies.gif +0 -0
  602. data/data/images/symbol_lceil.gif +0 -0
  603. data/data/images/symbol_le.gif +0 -0
  604. data/data/images/symbol_lfloor.gif +0 -0
  605. data/data/images/symbol_lt.gif +0 -0
  606. data/data/images/symbol_maps.gif +0 -0
  607. data/data/images/symbol_minus.gif +0 -0
  608. data/data/images/symbol_ne.gif +0 -0
  609. data/data/images/symbol_plusmn.gif +0 -0
  610. data/data/images/symbol_radic.gif +0 -0
  611. data/data/images/symbol_rceil.gif +0 -0
  612. data/data/images/symbol_rfloor.gif +0 -0
  613. data/data/images/symbol_sum.gif +0 -0
  614. data/data/images/symbol_times.gif +0 -0
  615. data/example/1/haskell/1.hs +0 -3
  616. data/example/12/README.md +0 -20
  617. data/example/12/haskell/12.hs +0 -3
  618. data/example/lib/Euler.hs +0 -1
data/data/problems/74.yml CHANGED
@@ -1,22 +1,15 @@
1
1
  ---
2
2
  :id: 74
3
3
  :name: Digit factorial chains
4
- :url: http://projecteuler.net/problem=74
4
+ :url: https://projecteuler.net/problem=74
5
5
  :content: "The number 145 is well known for the property that the sum of the factorial
6
6
  of its digits is equal to 145:\n\n1! + 4! + 5! = 1 + 24 + 120 = 145\n\nPerhaps less
7
7
  well known is 169, in that it produces the longest chain of numbers that link back
8
- to 169; it turns out that there are only three such loops that exist:\n\n169 ![]({{
9
- images_dir }}/symbol_maps.gif) 363601 ![]({{ images_dir }}/symbol_maps.gif) 1454
10
- ![→]({{ images_dir }}/symbol_maps.gif) 169 \n871 ![→]({{ images_dir }}/symbol_maps.gif)
11
- 45361 ![]({{ images_dir }}/symbol_maps.gif) 871 \n872 ![]({{ images_dir }}/symbol_maps.gif)
12
- 45362 ![]({{ images_dir }}/symbol_maps.gif) 872\n\nIt is not difficult to prove
13
- that EVERY starting number will eventually get stuck in a loop. For example,\n\n69
14
- ![→]({{ images_dir }}/symbol_maps.gif) 363600 ![→]({{ images_dir }}/symbol_maps.gif)
15
- 1454 ![→]({{ images_dir }}/symbol_maps.gif) 169 ![→]({{ images_dir }}/symbol_maps.gif)
16
- 363601 ( ![→]({{ images_dir }}/symbol_maps.gif) 1454) \n78 ![→]({{ images_dir }}/symbol_maps.gif)
17
- 45360 ![→]({{ images_dir }}/symbol_maps.gif) 871 ![→]({{ images_dir }}/symbol_maps.gif)
18
- 45361 ( ![→]({{ images_dir }}/symbol_maps.gif) 871) \n540 ![→]({{ images_dir }}/symbol_maps.gif)
19
- 145 ( ![→]({{ images_dir }}/symbol_maps.gif) 145)\n\nStarting with 69 produces a
20
- chain of five non-repeating terms, but the longest non-repeating chain with a starting
21
- number below one million is sixty terms.\n\nHow many chains, with a starting number
22
- below one million, contain exactly sixty non-repeating terms?\n\n"
8
+ to 169; it turns out that there are only three such loops that exist:\n\n169 → 363601
9
+ 1454 169 \n871 45361 871 \n872 → 45362 → 872\n\nIt is not difficult to
10
+ prove that EVERY starting number will eventually get stuck in a loop. For example,\n\n69
11
+ 363600 1454 → 169 → 363601 ( 1454) \n78 45360 → 871 → 45361 ( 871) \n540
12
+ 145 (145)\n\nStarting with 69 produces a chain of five non-repeating terms,
13
+ but the longest non-repeating chain with a starting number below one million is
14
+ sixty terms.\n\nHow many chains, with a starting number below one million, contain
15
+ exactly sixty non-repeating terms?\n\n"
data/data/problems/75.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 75
3
3
  :name: Singular integer right triangles
4
- :url: http://projecteuler.net/problem=75
4
+ :url: https://projecteuler.net/problem=75
5
5
  :content: "It turns out that 12 cm is the smallest length of wire that can be bent
6
6
  to form an integer sided right angle triangle in exactly one way, but there are
7
7
  many more examples.\n\n**12 cm** : (3,4,5) \n**24 cm** : (6,8,10) \n**30 cm**
@@ -10,5 +10,5 @@
10
10
  right angle triangle, and other lengths allow more than one solution to be found;
11
11
  for example, using 120 cm it is possible to form exactly three different integer
12
12
  sided right angle triangles.\n\n**120 cm** : (30,40,50), (20,48,52), (24,45,51)\n\nGiven
13
- that L is the length of the wire, for how many values of L ![]({{ images_dir }}/symbol_le.gif)
14
- 1,500,000 can exactly one integer sided right angle triangle be formed?\n\n"
13
+ that L is the length of the wire, for how many values of L ≤ 1,500,000 can exactly
14
+ one integer sided right angle triangle be formed?\n\n"
data/data/problems/76.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 76
3
3
  :name: Counting summations
4
- :url: http://projecteuler.net/problem=76
4
+ :url: https://projecteuler.net/problem=76
5
5
  :content: "It is possible to write five as a sum in exactly six different ways:\n\n4
6
6
  + 1 \n3 + 2 \n3 + 1 + 1 \n2 + 2 + 1 \n2 + 1 + 1 + 1 \n1 + 1 + 1 + 1 + 1\n\nHow
7
7
  many different ways can one hundred be written as a sum of at least two positive
data/data/problems/77.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 77
3
3
  :name: Prime summations
4
- :url: http://projecteuler.net/problem=77
4
+ :url: https://projecteuler.net/problem=77
5
5
  :content: "It is possible to write ten as the sum of primes in exactly five different
6
6
  ways:\n\n7 + 3 \n5 + 5 \n5 + 3 + 2 \n3 + 3 + 2 + 2 \n2 + 2 + 2 + 2 + 2\n\nWhat
7
7
  is the first value which can be written as the sum of primes in over five thousand
data/data/problems/78.yml CHANGED
@@ -1,17 +1,17 @@
1
1
  ---
2
2
  :id: 78
3
3
  :name: Coin partitions
4
- :url: http://projecteuler.net/problem=78
4
+ :url: https://projecteuler.net/problem=78
5
5
  :content: |+
6
- Let p(_n_) represent the number of different ways in which _n_ coins can be separated into piles. For example, five coins can separated into piles in exactly seven different ways, so p(5)=7.
6
+ Let p(_n_) represent the number of different ways in which _n_ coins can be separated into piles. For example, five coins can be separated into piles in exactly seven different ways, so p(5)=7.
7
7
 
8
8
  | OOOOO |
9
- | OOOO   O |
10
- | OOO   OO |
11
- | OOO   O   O |
12
- | OO   OO   O |
13
- | OO   O   O   O |
14
- | O   O   O   O   O |
9
+ | OOOO   O |
10
+ | OOO   OO |
11
+ | OOO   O   O |
12
+ | OO   OO   O |
13
+ | OO   O   O   O |
14
+ | O   O   O   O   O |
15
15
 
16
16
  Find the least value of _n_ for which p(_n_) is divisible by one million.
17
17
 
data/data/problems/79.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  :id: 79
3
3
  :name: Passcode derivation
4
- :url: http://projecteuler.net/problem=79
4
+ :url: https://projecteuler.net/problem=79
5
5
  :content: |+
6
6
  A common security method used for online banking is to ask the user for three random characters from a passcode. For example, if the passcode was 531278, they may ask for the 2nd, 3rd, and 5th characters; the expected reply would be: 317.
7
7
 
8
- The text file, [keylog.txt](project/keylog.txt), contains fifty successful login attempts.
8
+ The text file, [keylog.txt](project/resources/p079_keylog.txt), contains fifty successful login attempts.
9
9
 
10
10
  Given that the three characters are always asked for in order, analyse the file so as to determine the shortest possible secret passcode of unknown length.
11
11
 
data/data/problems/8.yml CHANGED
@@ -1,19 +1,18 @@
1
1
  ---
2
2
  :id: 8
3
3
  :name: Largest product in a series
4
- :url: http://projecteuler.net/problem=8
4
+ :url: https://projecteuler.net/problem=8
5
5
  :content: "The four adjacent digits in the 1000-digit number that have the greatest
6
- product are 9 ![×]({{ images_dir }}/symbol_times.gif) 9 ![×]({{ images_dir }}/symbol_times.gif)
7
- 8 ![×]({{ images_dir }}/symbol_times.gif) 9 = 5832.\n\n73167176531330624919225119674426574742355349194934
8
- \ \n\r96983520312774506326239578318016984801869478851843 \n\r85861560789112949495459501737958331952853208805511
9
- \ \n\r12540698747158523863050715693290963295227443043557 \n\r66896648950445244523161731856403098711121722383113
10
- \ \n\r62229893423380308135336276614282806444486645238749 \n\r30358907296290491560440772390713810515859307960866
11
- \ \n\r70172427121883998797908792274921901699720888093776 \n\r65727333001053367881220235421809751254540594752243
12
- \ \n\r52584907711670556013604839586446706324415722155397 \n\r53697817977846174064955149290862569321978468622482
13
- \ \n\r83972241375657056057490261407972968652414535100474 \n\r82166370484403199890008895243450658541227588666881
14
- \ \n\r16427171479924442928230863465674813919123162824586 \n\r17866458359124566529476545682848912883142607690042
15
- \ \n\r24219022671055626321111109370544217506941658960408 \n\r07198403850962455444362981230987879927244284909188
16
- \ \n\r84580156166097919133875499200524063689912560717606 \n\r05886116467109405077541002256983155200055935729725
17
- \ \n\r71636269561882670428252483600823257530420752963450\n\nFind the thirteen adjacent
6
+ product are 9 × 9 × 8 × 9 = 5832.\n\n73167176531330624919225119674426574742355349194934
7
+ \ \n96983520312774506326239578318016984801869478851843 \n85861560789112949495459501737958331952853208805511
8
+ \ \n12540698747158523863050715693290963295227443043557 \n66896648950445244523161731856403098711121722383113
9
+ \ \n62229893423380308135336276614282806444486645238749 \n30358907296290491560440772390713810515859307960866
10
+ \ \n70172427121883998797908792274921901699720888093776 \n65727333001053367881220235421809751254540594752243
11
+ \ \n52584907711670556013604839586446706324415722155397 \n53697817977846174064955149290862569321978468622482
12
+ \ \n83972241375657056057490261407972968652414535100474 \n82166370484403199890008895243450658541227588666881
13
+ \ \n16427171479924442928230863465674813919123162824586 \n17866458359124566529476545682848912883142607690042
14
+ \ \n24219022671055626321111109370544217506941658960408 \n07198403850962455444362981230987879927244284909188
15
+ \ \n84580156166097919133875499200524063689912560717606 \n05886116467109405077541002256983155200055935729725
16
+ \ \n71636269561882670428252483600823257530420752963450\n\nFind the thirteen adjacent
18
17
  digits in the 1000-digit number that have the greatest product. What is the value
19
18
  of this product?\n\n"
data/data/problems/80.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 80
3
3
  :name: Square root digital expansion
4
- :url: http://projecteuler.net/problem=80
4
+ :url: https://projecteuler.net/problem=80
5
5
  :content: |+
6
6
  It is well known that if the square root of a natural number is not an integer, then it is irrational. The decimal expansion of such square roots is infinite without any repeating pattern at all.
7
7
 
data/data/problems/81.yml CHANGED
@@ -1,13 +1,11 @@
1
1
  ---
2
2
  :id: 81
3
3
  :name: 'Path sum: two ways'
4
- :url: http://projecteuler.net/problem=81
5
- :content: "In the 5 by 5 matrix below, the minimal path sum from the top left to the
6
- bottom right, by **only moving to the right and down** , is indicated in bold red
7
- and is equal to 2427.\n\n| ![]({{ images_dir }}/bracket_left.gif) \n | \n\n| **131**
8
- | 673 | 234 | 103 | 18 |\n| **201** | **96** | **342** | 965 | 150 |\n| 630 | 803
9
- | **746** | **422** | 111 |\n| 537 | 699 | 497 | **121** | 956 |\n| 805 | 732 |
10
- 524 | **37** | **331** |\n\n | ![]({{ images_dir }}/bracket_right.gif) \n |\n\nFind
11
- the minimal path sum, in [matrix.txt](project/matrix.txt) (right click and 'Save
12
- Link/Target As...'), a 31K text file containing a 80 by 80 matrix, from the top
13
- left to the bottom right by only moving right and down.\n\n"
4
+ :url: https://projecteuler.net/problem=81
5
+ :content: |+
6
+ In the 5 by 5 matrix below, the minimal path sum from the top left to the bottom right, by **only moving to the right and down** , is indicated in bold red and is equal to 2427.
7
+
8
+ $$ \begin{pmatrix} \color{red}{131} & 673 & 234 & 103 & 18\\ \color{red}{201} & \color{red}{96} & \color{red}{342} & 965 & 150\\ 630 & 803 & \color{red}{746} & \color{red}{422} & 111\\ 537 & 699 & 497 & \color{red}{121} & 956\\ 805 & 732 & 524 & \color{red}{37} & \color{red}{331} \end{pmatrix} $$
9
+
10
+ Find the minimal path sum, in [matrix.txt](project/resources/p081_matrix.txt) (right click and "Save Link/Target As..."), a 31K text file containing a 80 by 80 matrix, from the top left to the bottom right by only moving right and down.
11
+
data/data/problems/82.yml CHANGED
@@ -1,14 +1,13 @@
1
1
  ---
2
2
  :id: 82
3
3
  :name: 'Path sum: three ways'
4
- :url: http://projecteuler.net/problem=82
5
- :content: "NOTE: This problem is a more challenging version of [Problem 81](problem=81).\n\nThe
6
- minimal path sum in the 5 by 5 matrix below, by starting in any cell in the left
7
- column and finishing in any cell in the right column, and only moving up, down,
8
- and right, is indicated in red and bold; the sum is equal to 994.\n\n| ![]({{ images_dir
9
- }}/bracket_left.gif) \n | \n\n| 131 | 673 | **234** | **103** | **18** |\n| **201**
10
- | **96** | **342** | 965 | 150 |\n| 630 | 803 | 746 | 422 | 111 |\n| 537 | 699 |
11
- 497 | 121 | 956 |\n| 805 | 732 | 524 | 37 | 331 |\n\n | ![]({{ images_dir }}/bracket_right.gif)
12
- \ \n |\n\nFind the minimal path sum, in [matrix.txt](project/matrix.txt) (right
13
- click and 'Save Link/Target As...'), a 31K text file containing a 80 by 80 matrix,
14
- from the left column to the right column.\n\n"
4
+ :url: https://projecteuler.net/problem=82
5
+ :content: |+
6
+ NOTE: This problem is a more challenging version of [Problem 81](problem=81).
7
+
8
+ The minimal path sum in the 5 by 5 matrix below, by starting in any cell in the left column and finishing in any cell in the right column, and only moving up, down, and right, is indicated in red and bold; the sum is equal to 994.
9
+
10
+ $$ \begin{pmatrix} 131 & 673 & \color{red}{234} & \color{red}{103} & \color{red}{18}\\ \color{red}{201} & \color{red}{96} & \color{red}{342} & 965 & 150\\ 630 & 803 & 746 & 422 & 111\\ 537 & 699 & 497 & 121 & 956\\ 805 & 732 & 524 & 37 & 331 \end{pmatrix} $$
11
+
12
+ Find the minimal path sum, in [matrix.txt](project/resources/p082_matrix.txt) (right click and "Save Link/Target As..."), a 31K text file containing a 80 by 80 matrix, from the left column to the right column.
13
+
data/data/problems/83.yml CHANGED
@@ -1,14 +1,13 @@
1
1
  ---
2
2
  :id: 83
3
3
  :name: 'Path sum: four ways'
4
- :url: http://projecteuler.net/problem=83
5
- :content: "NOTE: This problem is a significantly more challenging version of [Problem
6
- 81](problem=81).\n\nIn the 5 by 5 matrix below, the minimal path sum from the top
7
- left to the bottom right, by moving left, right, up, and down, is indicated in bold
8
- red and is equal to 2297.\n\n| ![]({{ images_dir }}/bracket_left.gif) \n | \n\n|
9
- **131** | 673 | **234** | **103** | **18** |\n| **201** | **96** | **342** | 965
10
- | **150** |\n| 630 | 803 | 746 | **422** | **111** |\n| 537 | 699 | 497 | **121**
11
- | 956 |\n| 805 | 732 | 524 | **37** | **331** |\n\n | ![]({{ images_dir }}/bracket_right.gif)
12
- \ \n |\n\nFind the minimal path sum, in [matrix.txt](project/matrix.txt) (right
13
- click and 'Save Link/Target As...'), a 31K text file containing a 80 by 80 matrix,
14
- from the top left to the bottom right by moving left, right, up, and down.\n\n"
4
+ :url: https://projecteuler.net/problem=83
5
+ :content: |+
6
+ NOTE: This problem is a significantly more challenging version of [Problem 81](problem=81).
7
+
8
+ In the 5 by 5 matrix below, the minimal path sum from the top left to the bottom right, by moving left, right, up, and down, is indicated in bold red and is equal to 2297.
9
+
10
+ $$ \begin{pmatrix} \color{red}{131} & 673 & \color{red}{234} & \color{red}{103} & \color{red}{18}\\ \color{red}{201} & \color{red}{96} & \color{red}{342} & 965 & \color{red}{150}\\ 630 & 803 & 746 & \color{red}{422} & \color{red}{111}\\ 537 & 699 & 497 & \color{red}{121} & 956\\ 805 & 732 & 524 & \color{red}{37} & \color{red}{331} \end{pmatrix} $$
11
+
12
+ Find the minimal path sum, in [matrix.txt](project/resources/p083_matrix.txt) (right click and "Save Link/Target As..."), a 31K text file containing a 80 by 80 matrix, from the top left to the bottom right by moving left, right, up, and down.
13
+
data/data/problems/84.yml CHANGED
@@ -1,40 +1,48 @@
1
1
  ---
2
2
  :id: 84
3
3
  :name: Monopoly odds
4
- :url: http://projecteuler.net/problem=84
5
- :content: "In the game, _Monopoly_, the standard board is set up in the following
6
- way:\n\n| GO | A1 | CC1 | A2 | T1 | R1 | B1 | CH1 | B2 | B3 | JAIL |\n| H2 |   |
7
- C1 |\n| T2 |   | U1 |\n| H1 |   | C2 |\n| CH3 |   | C3 |\n| R4 |   | R2 |\n| G3
8
- |   | D1 |\n| CC3 |   | CC2 |\n| G2 |   | D2 |\n| G1 |   | D3 |\n| G2J | F3 | U2
9
- | F2 | F1 | R3 | E3 | E2 | CH2 | E1 | FP |\n\nA player starts on the GO square and
10
- adds the scores on two 6-sided dice to determine the number of squares they advance
11
- in a clockwise direction. Without any further rules we would expect to visit each
12
- square with equal probability: 2.5%. However, landing on G2J (Go To Jail), CC (community
13
- chest), and CH (chance) changes this distribution.\n\nIn addition to G2J, and one
14
- card from each of CC and CH, that orders the player to go directly to jail, if a
15
- player rolls three consecutive doubles, they do not advance the result of their
16
- 3rd roll. Instead they proceed directly to jail.\n\nAt the beginning of the game,
17
- the CC and CH cards are shuffled. When a player lands on CC or CH they take a card
18
- from the top of the respective pile and, after following the instructions, it is
19
- returned to the bottom of the pile. There are sixteen cards in each pile, but for
20
- the purpose of this problem we are only concerned with cards that order a movement;
21
- any instruction not concerned with movement will be ignored and the player will
22
- remain on the CC/CH square.\n\n- Community Chest (2/16 cards):\r\n 1. Advance to
23
- GO\n 2. Go to JAIL\n\n- Chance (10/16 cards):\r\n 1. Advance to GO\n 2. Go to
24
- JAIL\n 3. Go to C1\n 4. Go to E3\n 5. Go to H2\n 6. Go to R1\n 7. Go to next
25
- R (railway company)\n 8. Go to next R\n 9. Go to next U (utility company)\n 10.
26
- Go back 3 squares.\n\nThe heart of this problem concerns the likelihood of visiting
27
- a particular square. That is, the probability of finishing at that square after
28
- a roll. For this reason it should be clear that, with the exception of G2J for which
29
- the probability of finishing on it is zero, the CH squares will have the lowest
30
- probabilities, as 5/8 request a movement to another square, and it is the final
31
- square that the player finishes at on each roll that we are interested in. We shall
32
- make no distinction between \"Just Visiting\" and being sent to JAIL, and we shall
33
- also ignore the rule about requiring a double to \"get out of jail\", assuming that
34
- they pay to get out on their next turn.\n\nBy starting at GO and numbering the squares
35
- sequentially from 00 to 39 we can concatenate these two-digit numbers to produce
36
- strings that correspond with sets of squares.\n\nStatistically it can be shown that
37
- the three most popular squares, in order, are JAIL (6.24%) = Square 10, E3 (3.18%)
38
- = Square 24, and GO (3.09%) = Square 00. So these three most popular squares can
39
- be listed with the six-digit modal string: 102400.\n\nIf, instead of using two 6-sided
40
- dice, two 4-sided dice are used, find the six-digit modal string.\n\n"
4
+ :url: https://projecteuler.net/problem=84
5
+ :content: |+
6
+ In the game, _Monopoly_, the standard board is set up in the following way:
7
+
8
+ | GO | A1 | CC1 | A2 | T1 | R1 | B1 | CH1 | B2 | B3 | JAIL |
9
+ | H2 |   | C1 |
10
+ | T2 |   | U1 |
11
+ | H1 |   | C2 |
12
+ | CH3 |   | C3 |
13
+ | R4 |   | R2 |
14
+ | G3 |   | D1 |
15
+ | CC3 |   | CC2 |
16
+ | G2 |   | D2 |
17
+ | G1 |   | D3 |
18
+ | G2J | F3 | U2 | F2 | F1 | R3 | E3 | E2 | CH2 | E1 | FP |
19
+
20
+ A player starts on the GO square and adds the scores on two 6-sided dice to determine the number of squares they advance in a clockwise direction. Without any further rules we would expect to visit each square with equal probability: 2.5%. However, landing on G2J (Go To Jail), CC (community chest), and CH (chance) changes this distribution.
21
+
22
+ In addition to G2J, and one card from each of CC and CH, that orders the player to go directly to jail, if a player rolls three consecutive doubles, they do not advance the result of their 3rd roll. Instead they proceed directly to jail.
23
+
24
+ At the beginning of the game, the CC and CH cards are shuffled. When a player lands on CC or CH they take a card from the top of the respective pile and, after following the instructions, it is returned to the bottom of the pile. There are sixteen cards in each pile, but for the purpose of this problem we are only concerned with cards that order a movement; any instruction not concerned with movement will be ignored and the player will remain on the CC/CH square.
25
+
26
+ - Community Chest (2/16 cards):
27
+ 1. Advance to GO
28
+ 2. Go to JAIL
29
+ - Chance (10/16 cards):
30
+ 1. Advance to GO
31
+ 2. Go to JAIL
32
+ 3. Go to C1
33
+ 4. Go to E3
34
+ 5. Go to H2
35
+ 6. Go to R1
36
+ 7. Go to next R (railway company)
37
+ 8. Go to next R
38
+ 9. Go to next U (utility company)
39
+ 10. Go back 3 squares.
40
+
41
+ The heart of this problem concerns the likelihood of visiting a particular square. That is, the probability of finishing at that square after a roll. For this reason it should be clear that, with the exception of G2J for which the probability of finishing on it is zero, the CH squares will have the lowest probabilities, as 5/8 request a movement to another square, and it is the final square that the player finishes at on each roll that we are interested in. We shall make no distinction between "Just Visiting" and being sent to JAIL, and we shall also ignore the rule about requiring a double to "get out of jail", assuming that they pay to get out on their next turn.
42
+
43
+ By starting at GO and numbering the squares sequentially from 00 to 39 we can concatenate these two-digit numbers to produce strings that correspond with sets of squares.
44
+
45
+ Statistically it can be shown that the three most popular squares, in order, are JAIL (6.24%) = Square 10, E3 (3.18%) = Square 24, and GO (3.09%) = Square 00. So these three most popular squares can be listed with the six-digit modal string: 102400.
46
+
47
+ If, instead of using two 6-sided dice, two 4-sided dice are used, find the six-digit modal string.
48
+
data/data/problems/85.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  :id: 85
3
3
  :name: Counting rectangles
4
- :url: http://projecteuler.net/problem=85
4
+ :url: https://projecteuler.net/problem=85
5
5
  :content: |+
6
6
  By counting carefully it can be seen that a rectangular grid measuring 3 by 2 contains eighteen rectangles:
7
7
 
8
- ![]({{ images_dir }}/p_085.gif)
8
+ ![]({{ images_dir }}/p085.gif)
9
9
 
10
10
  Although there exists no rectangular grid that contains exactly two million rectangles, find the area of the grid with the nearest solution.
11
11
 
data/data/problems/86.yml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  :id: 86
3
3
  :name: Cuboid route
4
- :url: http://projecteuler.net/problem=86
4
+ :url: https://projecteuler.net/problem=86
5
5
  :content: "A spider, S, sits in one corner of a cuboid room, measuring 6 by 5 by 3,
6
6
  and a fly, F, sits in the opposite corner. By travelling on the surfaces of the
7
7
  room the shortest \"straight line\" distance from S to F is 10 and the path is shown
8
- on the diagram.\n\n ![]({{ images_dir }}/p_086.gif) \n\nHowever, there are up to
8
+ on the diagram.\n\n ![]({{ images_dir }}/p086.gif) \n\nHowever, there are up to
9
9
  three \"shortest\" path candidates for any given cuboid and the shortest route doesn't
10
- always have integer length.\n\nBy considering all cuboid rooms with integer dimensions,
11
- up to a maximum size of M by M by M, there are exactly 2060 cuboids for which the
12
- shortest route has integer length when M=100, and this is the least value of M for
13
- which the number of solutions first exceeds two thousand; the number of solutions
14
- is 1975 when M=99.\n\nFind the least value of M such that the number of solutions
15
- first exceeds one million.\n\n"
10
+ always have integer length.\n\nIt can be shown that there are exactly 2060 distinct
11
+ cuboids, ignoring rotations, with integer dimensions, up to a maximum size of M
12
+ by M by M, for which the shortest route has integer length when M = 100. This is
13
+ the least value of M for which the number of solutions first exceeds two thousand;
14
+ the number of solutions when M = 99 is 1975.\n\nFind the least value of M such that
15
+ the number of solutions first exceeds one million.\n\n"
data/data/problems/87.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 87
3
3
  :name: Prime power triples
4
- :url: http://projecteuler.net/problem=87
4
+ :url: https://projecteuler.net/problem=87
5
5
  :content: "The smallest number expressible as the sum of a prime square, prime cube,
6
6
  and prime fourth power is 28. In fact, there are exactly four numbers below fifty
7
7
  that can be expressed in such a way:\n\n28 = 2<sup>2</sup> + 2<sup>3</sup> + 2<sup>4</sup>
data/data/problems/88.yml CHANGED
@@ -1,29 +1,18 @@
1
1
  ---
2
2
  :id: 88
3
3
  :name: Product-sum numbers
4
- :url: http://projecteuler.net/problem=88
4
+ :url: https://projecteuler.net/problem=88
5
5
  :content: "A natural number, N, that can be written as the sum and product of a given
6
6
  set of at least two natural numbers, {_a_<sub>1</sub>, _a_<sub>2</sub>, ... , _a_<sub><i>k</i></sub>}
7
7
  is called a product-sum number: N = _a_<sub>1</sub> + _a_<sub>2</sub> + ... + _a_<sub><i>k</i></sub>
8
- = _a_<sub>1</sub> ![×]({{ images_dir }}/symbol_times.gif) _a_<sub>2</sub> ![×]({{
9
- images_dir }}/symbol_times.gif) ... ![×]({{ images_dir }}/symbol_times.gif) _a_<sub><i>k</i></sub>.\n\nFor
10
- example, 6 = 1 + 2 + 3 = 1 ![×]({{ images_dir }}/symbol_times.gif) 2 ![×]({{ images_dir
11
- }}/symbol_times.gif) 3.\n\nFor a given set of size, _k_, we shall call the smallest
8
+ = _a_<sub>1</sub> × _a_<sub>2</sub> × ... × _a_<sub><i>k</i></sub>.\n\nFor example,
9
+ 6 = 1 + 2 + 3 = 1 × 2 × 3.\n\nFor a given set of size, _k_, we shall call the smallest
12
10
  N with this property a minimal product-sum number. The minimal product-sum numbers
13
- for sets of size, _k_ = 2, 3, 4, 5, and 6 are as follows.\n\n_k_=2: 4 = 2 ![×]({{
14
- images_dir }}/symbol_times.gif) 2 = 2 + 2 \n_k_=3: 6 = 1 ![×]({{ images_dir }}/symbol_times.gif)
15
- 2 ![×]({{ images_dir }}/symbol_times.gif) 3 = 1 + 2 + 3 \n_k_=4: 8 = 1 ![×]({{
16
- images_dir }}/symbol_times.gif) 1 ![×]({{ images_dir }}/symbol_times.gif) 2 ![×]({{
17
- images_dir }}/symbol_times.gif) 4 = 1 + 1 + 2 + 4 \n_k_=5: 8 = 1 ![×]({{ images_dir
18
- }}/symbol_times.gif) 1 ![×]({{ images_dir }}/symbol_times.gif) 2 ![×]({{ images_dir
19
- }}/symbol_times.gif) 2 ![×]({{ images_dir }}/symbol_times.gif) 2 = 1 + 1 + 2 + 2
20
- + 2 \n_k_=6: 12 = 1 ![×]({{ images_dir }}/symbol_times.gif) 1 ![×]({{ images_dir
21
- }}/symbol_times.gif) 1 ![×]({{ images_dir }}/symbol_times.gif) 1 ![×]({{ images_dir
22
- }}/symbol_times.gif) 2 ![×]({{ images_dir }}/symbol_times.gif) 6 = 1 + 1 + 1 + 1
23
- + 2 + 6\n\nHence for 2 ![≤]({{ images_dir }}/symbol_le.gif)_k_ ![≤]({{ images_dir
24
- }}/symbol_le.gif)6, the sum of all the minimal product-sum numbers is 4+6+8+12 =
25
- 30; note that 8 is only counted once in the sum.\n\nIn fact, as the complete set
26
- of minimal product-sum numbers for 2 ![≤]({{ images_dir }}/symbol_le.gif)_k_ ![≤]({{
27
- images_dir }}/symbol_le.gif)12 is {4, 6, 8, 12, 15, 16}, the sum is 61.\n\nWhat
28
- is the sum of all the minimal product-sum numbers for 2 ![≤]({{ images_dir }}/symbol_le.gif)_k_
29
- ![≤]({{ images_dir }}/symbol_le.gif)12000?\n\n"
11
+ for sets of size, _k_ = 2, 3, 4, 5, and 6 are as follows.\n\n_k_=2: 4 = 2 × 2 =
12
+ 2 + 2 \n_k_=3: 6 = 1 × 2 × 3 = 1 + 2 + 3 \n_k_=4: 8 = 1 × 1 × 2 × 4 = 1 + 1 +
13
+ 2 + 4 \n_k_=5: 8 = 1 × 1 × 2 × 2 × 2 = 1 + 1 + 2 + 2 + 2 \n_k_=6: 12 = 1 × 1 ×
14
+ 1 × 1 × 2 × 6 = 1 + 1 + 1 + 1 + 2 + 6\n\nHence for 2≤_k_≤6, the sum of all the minimal
15
+ product-sum numbers is 4+6+8+12 = 30; note that 8 is only counted once in the sum.\n\nIn
16
+ fact, as the complete set of minimal product-sum numbers for 2≤_k_≤12 is {4, 6,
17
+ 8, 12, 15, 16}, the sum is 61.\n\nWhat is the sum of all the minimal product-sum
18
+ numbers for 2≤_k_≤12000?\n\n"
data/data/problems/89.yml CHANGED
@@ -1,17 +1,17 @@
1
1
  ---
2
2
  :id: 89
3
3
  :name: Roman numerals
4
- :url: http://projecteuler.net/problem=89
5
- :content: "The rules for writing Roman numerals allow for many ways of writing each
6
- number (see [About Roman Numerals...](about=roman_numerals)). However, there is
7
- always a \"best\" way of writing a particular number.\n\nFor example, the following
8
- represent all of the legitimate ways of writing the number sixteen:\n\nIIIIIIIIIIIIIIII
9
- \ \n\rVIIIIIIIIIII \n\rVVIIIIII \n\rXIIIIII \n\rVVVI \n\rXVI\n\nThe last example
10
- being considered the most efficient, as it uses the least number of numerals.\n\nThe
11
- 11K text file, [roman.txt](project/roman.txt) (right click and 'Save Link/Target
12
- As...'), contains one thousand numbers written in valid, but not necessarily minimal,
13
- Roman numerals; that is, they are arranged in descending units and obey the subtractive
14
- pair rule (see [About Roman Numerals...](about=roman_numerals) for the definitive
15
- rules for this problem).\n\nFind the number of characters saved by writing each
16
- of these in their minimal form.\n\nNote: You can assume that all the Roman numerals
17
- in the file contain no more than four consecutive identical units.\n\n"
4
+ :url: https://projecteuler.net/problem=89
5
+ :content: "For a number written in Roman numerals to be considered valid there are
6
+ basic rules which must be followed. Even though the rules allow some numbers to
7
+ be expressed in more than one way there is always a \"best\" way of writing a particular
8
+ number.\n\nFor example, it would appear that there are at least six ways of writing
9
+ the number sixteen:\n\nIIIIIIIIIIIIIIII \nVIIIIIIIIIII \nVVIIIIII \nXIIIIII \nVVVI
10
+ \ \nXVI\n\nHowever, according to the rules only XIIIIII and XVI are valid, and the
11
+ last example is considered to be the most efficient, as it uses the least number
12
+ of numerals.\n\nThe 11K text file, [roman.txt](project/resources/p089_roman.txt)
13
+ (right click and 'Save Link/Target As...'), contains one thousand numbers written
14
+ in valid, but not necessarily minimal, Roman numerals; see [About... Roman Numerals](about=roman_numerals)
15
+ for the definitive rules for this problem.\n\nFind the number of characters saved
16
+ by writing each of these in their minimal form.\n\nNote: You can assume that all
17
+ the Roman numerals in the file contain no more than four consecutive identical units.\n\n"
data/data/problems/9.yml CHANGED
@@ -1,10 +1,9 @@
1
1
  ---
2
2
  :id: 9
3
3
  :name: Special Pythagorean triplet
4
- :url: http://projecteuler.net/problem=9
5
- :content: "A Pythagorean triplet is a set of three natural numbers, <var>a</var> ![<]({{
6
- images_dir }}/symbol_lt.gif) <var>b</var> ![<]({{ images_dir }}/symbol_lt.gif) <var>c</var>,
7
- for which,\n\n <var>a</var><sup>2</sup> + <var>b</var><sup>2</sup> = <var>c</var><sup>2</sup>\n\nFor
8
- example, 3<sup>2</sup> + 4<sup>2</sup> = 9 + 16 = 25 = 5<sup>2</sup>.\n\nThere exists
9
- exactly one Pythagorean triplet for which <var>a</var> + <var>b</var> + <var>c</var>
10
- = 1000. \nFind the product <var>abc</var>.\n\n"
4
+ :url: https://projecteuler.net/problem=9
5
+ :content: "A Pythagorean triplet is a set of three natural numbers, <var>a</var> \\<
6
+ <var>b</var> \\< <var>c</var>, for which,\n\n <var>a</var><sup>2</sup> + <var>b</var><sup>2</sup>
7
+ = <var>c</var><sup>2</sup>\n\nFor example, 3<sup>2</sup> + 4<sup>2</sup> = 9 + 16
8
+ = 25 = 5<sup>2</sup>.\n\nThere exists exactly one Pythagorean triplet for which
9
+ <var>a</var> + <var>b</var> + <var>c</var> = 1000. \nFind the product <var>abc</var>.\n\n"