euler-manager 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (645) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -1
  3. data/Rakefile +3 -0
  4. data/bin/euler +28 -9
  5. data/config/config.rb +1 -0
  6. data/data/answers.yml +430 -456
  7. data/data/images/blackdot.gif +0 -0
  8. data/data/images/bracket_left.gif +0 -0
  9. data/data/images/bracket_right.gif +0 -0
  10. data/data/images/p295_lenticular.gif +0 -0
  11. data/data/images/p296_bisector.gif +0 -0
  12. data/data/images/p303_formula100.gif +0 -0
  13. data/data/images/p303_formula10000.gif +0 -0
  14. data/data/images/p392_gridlines.png +0 -0
  15. data/data/images/p400_winning.png +0 -0
  16. data/data/images/p411_longpath.png +0 -0
  17. data/data/images/p412_table53.png +0 -0
  18. data/data/images/p412_tablenums.png +0 -0
  19. data/data/images/p422_hyperbola.gif +0 -0
  20. data/data/images/p428_necklace.png +0 -0
  21. data/data/images/p_015.gif +0 -0
  22. data/data/images/p_068_1.gif +0 -0
  23. data/data/images/p_068_2.gif +0 -0
  24. data/data/images/p_085.gif +0 -0
  25. data/data/images/p_086.gif +0 -0
  26. data/data/images/p_090.gif +0 -0
  27. data/data/images/p_091_1.gif +0 -0
  28. data/data/images/p_091_2.gif +0 -0
  29. data/data/images/p_107_1.gif +0 -0
  30. data/data/images/p_107_2.gif +0 -0
  31. data/data/images/p_109.gif +0 -0
  32. data/data/images/p_126.gif +0 -0
  33. data/data/images/p_128.gif +0 -0
  34. data/data/images/p_138.gif +0 -0
  35. data/data/images/p_139.gif +0 -0
  36. data/data/images/p_143_torricelli.gif +0 -0
  37. data/data/images/p_144_1.gif +0 -0
  38. data/data/images/p_144_2.gif +0 -0
  39. data/data/images/p_147.gif +0 -0
  40. data/data/images/p_150.gif +0 -0
  41. data/data/images/p_151.gif +0 -0
  42. data/data/images/p_152_sum.gif +0 -0
  43. data/data/images/p_153_formule1.gif +0 -0
  44. data/data/images/p_153_formule2.gif +0 -0
  45. data/data/images/p_153_formule5.gif +0 -0
  46. data/data/images/p_153_formule6.gif +0 -0
  47. data/data/images/p_154_pyramid.gif +0 -0
  48. data/data/images/p_155_capacitors1.gif +0 -0
  49. data/data/images/p_155_capsform.gif +0 -0
  50. data/data/images/p_155_capsmu.gif +0 -0
  51. data/data/images/p_161_k9.gif +0 -0
  52. data/data/images/p_161_trio1.gif +0 -0
  53. data/data/images/p_161_trio3.gif +0 -0
  54. data/data/images/p_163.gif +0 -0
  55. data/data/images/p_173_square_laminas.gif +0 -0
  56. data/data/images/p_177_quad.gif +0 -0
  57. data/data/images/p_184.gif +0 -0
  58. data/data/images/p_189_colours.gif +0 -0
  59. data/data/images/p_189_grid.gif +0 -0
  60. data/data/images/p_194_Fig.png +0 -0
  61. data/data/images/p_194_GraphA.png +0 -0
  62. data/data/images/p_194_GraphB.png +0 -0
  63. data/data/images/p_199_circles_in_circles.gif +0 -0
  64. data/data/images/p_201_laserbeam.gif +0 -0
  65. data/data/images/p_208_robotwalk.gif +0 -0
  66. data/data/images/p_215_crackfree.gif +0 -0
  67. data/data/images/p_220.gif +0 -0
  68. data/data/images/p_226_formula.gif +0 -0
  69. data/data/images/p_226_scoop2.gif +0 -0
  70. data/data/images/p_228.png +0 -0
  71. data/data/images/p_237.gif +0 -0
  72. data/data/images/p_244_example.gif +0 -0
  73. data/data/images/p_244_start.gif +0 -0
  74. data/data/images/p_244_target.gif +0 -0
  75. data/data/images/p_246_anim.gif +0 -0
  76. data/data/images/p_246_ellipse.gif +0 -0
  77. data/data/images/p_247_hypersquares.gif +0 -0
  78. data/data/images/p_251_cardano.gif +0 -0
  79. data/data/images/p_252_convexhole.gif +0 -0
  80. data/data/images/p_255_Example.gif +0 -0
  81. data/data/images/p_255_Heron.gif +0 -0
  82. data/data/images/p_256_tatami3.gif +0 -0
  83. data/data/images/p_257_bisector.gif +0 -0
  84. data/data/images/p_262_formula1.gif +0 -0
  85. data/data/images/p_264_TriangleCentres.gif +0 -0
  86. data/data/images/p_265_BinaryCircles.gif +0 -0
  87. data/data/images/p_270_CutSquare.gif +0 -0
  88. data/data/images/p_275_sculptures2.gif +0 -0
  89. data/data/images/p_281_pizza.gif +0 -0
  90. data/data/images/p_282_formula.gif +0 -0
  91. data/data/images/p_282formula3.gif +0 -0
  92. data/data/images/p_287_quadtree.gif +0 -0
  93. data/data/images/p_289_euler.gif +0 -0
  94. data/data/images/p_291_formula.gif +0 -0
  95. data/data/images/p_299_ThreeSimTri.gif +0 -0
  96. data/data/images/p_300_protein.gif +0 -0
  97. data/data/images/p_306_pstrip.gif +0 -0
  98. data/data/images/p_309_ladders.gif +0 -0
  99. data/data/images/p_311_biclinic.gif +0 -0
  100. data/data/images/p_312_sierpinsky8t.gif +0 -0
  101. data/data/images/p_312_sierpinskyAt.gif +0 -0
  102. data/data/images/p_313_sliding_game_1.gif +0 -0
  103. data/data/images/p_313_sliding_game_2.gif +0 -0
  104. data/data/images/p_314_landgrab.gif +0 -0
  105. data/data/images/p_315_clocks.gif +0 -0
  106. data/data/images/p_316_decexp1.gif +0 -0
  107. data/data/images/p_316_decexp2.gif +0 -0
  108. data/data/images/p_316_decexp3.gif +0 -0
  109. data/data/images/p_321_swapping_counters_1.gif +0 -0
  110. data/data/images/p_321_swapping_counters_2.gif +0 -0
  111. data/data/images/p_326_formula1.gif +0 -0
  112. data/data/images/p_326_formula2.gif +0 -0
  113. data/data/images/p_327_rooms_of_doom.gif +0 -0
  114. data/data/images/p_328_sum1.gif +0 -0
  115. data/data/images/p_328_sum2.gif +0 -0
  116. data/data/images/p_330_formula.gif +0 -0
  117. data/data/images/p_331_crossflips1.gif +0 -0
  118. data/data/images/p_331_crossflips2.gif +0 -0
  119. data/data/images/p_331_crossflips3.gif +0 -0
  120. data/data/images/p_332_spherical.jpg +0 -0
  121. data/data/images/p_332_sum.gif +0 -0
  122. data/data/images/p_334_beans.gif +0 -0
  123. data/data/images/p_334_cases.gif +0 -0
  124. data/data/images/p_334_lfloor.gif +0 -0
  125. data/data/images/p_334_oplus.gif +0 -0
  126. data/data/images/p_334_rfloor.gif +0 -0
  127. data/data/images/p_335_mancala.gif +0 -0
  128. data/data/images/p_335_sum.gif +0 -0
  129. data/data/images/p_336_maximix.gif +0 -0
  130. data/data/images/p_338_gridpaper.gif +0 -0
  131. data/data/images/p_340_formula.gif +0 -0
  132. data/data/images/p_344_silverdollar.gif +0 -0
  133. data/data/images/p_351_hexorchard.png +0 -0
  134. data/data/images/p_354_bee_honeycomb.png +0 -0
  135. data/data/images/p_356_cubicpoly1.gif +0 -0
  136. data/data/images/p_356_cubicpoly2.gif +0 -0
  137. data/data/images/p_361_Thue-Morse1.gif +0 -0
  138. data/data/images/p_364_comf_dist.gif +0 -0
  139. data/data/images/p_372_pencilray1.jpg +0 -0
  140. data/data/images/p_372_pencilray2.gif +0 -0
  141. data/data/images/p_380_mazes.gif +0 -0
  142. data/data/images/p_384_formula.gif +0 -0
  143. data/data/images/p_385_ellipsetriangle.png +0 -0
  144. data/data/images/p_394_eatpie.gif +0 -0
  145. data/data/images/p_395_pythagorean.gif +0 -0
  146. data/data/images/p_404_c_ellipse.gif +0 -0
  147. data/data/images/p_405_tile1.png +0 -0
  148. data/data/images/p_405_tile2.gif +0 -0
  149. data/data/images/p_420_matrix.gif +0 -0
  150. data/data/images/p_424_kakuro1.gif +0 -0
  151. data/data/images/p_426_baxball1.gif +0 -0
  152. data/data/images/p_426_baxball2.gif +0 -0
  153. data/data/images/p_430_flips.gif +0 -0
  154. data/data/images/sod_13.gif +115 -0
  155. data/data/images/spacer.gif +0 -0
  156. data/data/images/symbol_asymp.gif +0 -0
  157. data/data/images/symbol_cong.gif +0 -0
  158. data/data/images/symbol_ge.gif +0 -0
  159. data/data/images/symbol_gt.gif +0 -0
  160. data/data/images/symbol_implies.gif +0 -0
  161. data/data/images/symbol_lceil.gif +0 -0
  162. data/data/images/symbol_le.gif +0 -0
  163. data/data/images/symbol_lfloor.gif +0 -0
  164. data/data/images/symbol_lt.gif +0 -0
  165. data/data/images/symbol_maps.gif +0 -0
  166. data/data/images/symbol_minus.gif +0 -0
  167. data/data/images/symbol_ne.gif +0 -0
  168. data/data/images/symbol_plusmn.gif +0 -0
  169. data/data/images/symbol_radic.gif +0 -0
  170. data/data/images/symbol_rceil.gif +0 -0
  171. data/data/images/symbol_rfloor.gif +0 -0
  172. data/data/images/symbol_sum.gif +0 -0
  173. data/data/images/symbol_times.gif +0 -0
  174. data/data/problems/1.yml +5 -3
  175. data/data/problems/10.yml +3 -4
  176. data/data/problems/100.yml +7 -9
  177. data/data/problems/101.yml +32 -45
  178. data/data/problems/102.yml +11 -12
  179. data/data/problems/103.yml +18 -22
  180. data/data/problems/104.yml +9 -11
  181. data/data/problems/105.yml +12 -17
  182. data/data/problems/106.yml +14 -15
  183. data/data/problems/107.yml +16 -16
  184. data/data/problems/108.yml +17 -28
  185. data/data/problems/109.yml +27 -29
  186. data/data/problems/11.yml +24 -29
  187. data/data/problems/110.yml +11 -15
  188. data/data/problems/111.yml +27 -17
  189. data/data/problems/112.yml +13 -11
  190. data/data/problems/113.yml +11 -9
  191. data/data/problems/114.yml +46 -100
  192. data/data/problems/115.yml +15 -12
  193. data/data/problems/116.yml +33 -72
  194. data/data/problems/117.yml +36 -78
  195. data/data/problems/118.yml +5 -5
  196. data/data/problems/119.yml +9 -7
  197. data/data/problems/12.yml +8 -9
  198. data/data/problems/120.yml +7 -13
  199. data/data/problems/121.yml +9 -11
  200. data/data/problems/122.yml +21 -38
  201. data/data/problems/123.yml +9 -9
  202. data/data/problems/124.yml +24 -54
  203. data/data/problems/125.yml +7 -8
  204. data/data/problems/126.yml +12 -13
  205. data/data/problems/127.yml +21 -27
  206. data/data/problems/128.yml +19 -14
  207. data/data/problems/129.yml +9 -8
  208. data/data/problems/13.yml +52 -2
  209. data/data/problems/130.yml +12 -15
  210. data/data/problems/131.yml +9 -8
  211. data/data/problems/132.yml +7 -8
  212. data/data/problems/133.yml +9 -9
  213. data/data/problems/134.yml +7 -15
  214. data/data/problems/135.yml +9 -16
  215. data/data/problems/136.yml +9 -13
  216. data/data/problems/137.yml +22 -32
  217. data/data/problems/138.yml +11 -16
  218. data/data/problems/139.yml +11 -11
  219. data/data/problems/14.yml +14 -24
  220. data/data/problems/140.yml +18 -25
  221. data/data/problems/141.yml +10 -11
  222. data/data/problems/142.yml +3 -10
  223. data/data/problems/143.yml +13 -16
  224. data/data/problems/144.yml +23 -26
  225. data/data/problems/145.yml +7 -7
  226. data/data/problems/146.yml +6 -6
  227. data/data/problems/147.yml +7 -8
  228. data/data/problems/148.yml +15 -7
  229. data/data/problems/149.yml +26 -35
  230. data/data/problems/15.yml +7 -7
  231. data/data/problems/150.yml +18 -29
  232. data/data/problems/151.yml +17 -15
  233. data/data/problems/152.yml +11 -8
  234. data/data/problems/153.yml +38 -53
  235. data/data/problems/154.yml +10 -12
  236. data/data/problems/155.yml +12 -15
  237. data/data/problems/156.yml +20 -22
  238. data/data/problems/157.yml +26 -28
  239. data/data/problems/158.yml +13 -14
  240. data/data/problems/159.yml +15 -25
  241. data/data/problems/16.yml +5 -2
  242. data/data/problems/160.yml +3 -4
  243. data/data/problems/161.yml +6 -10
  244. data/data/problems/162.yml +10 -11
  245. data/data/problems/163.yml +13 -15
  246. data/data/problems/164.yml +3 -3
  247. data/data/problems/165.yml +25 -28
  248. data/data/problems/166.yml +7 -11
  249. data/data/problems/167.yml +10 -12
  250. data/data/problems/168.yml +7 -9
  251. data/data/problems/169.yml +4 -5
  252. data/data/problems/17.yml +7 -7
  253. data/data/problems/170.yml +7 -10
  254. data/data/problems/171.yml +7 -9
  255. data/data/problems/172.yml +3 -2
  256. data/data/problems/173.yml +9 -7
  257. data/data/problems/174.yml +13 -15
  258. data/data/problems/175.yml +13 -15
  259. data/data/problems/176.yml +5 -5
  260. data/data/problems/177.yml +13 -12
  261. data/data/problems/178.yml +5 -5
  262. data/data/problems/179.yml +3 -6
  263. data/data/problems/18.yml +13 -17
  264. data/data/problems/180.yml +20 -25
  265. data/data/problems/181.yml +7 -3
  266. data/data/problems/182.yml +22 -27
  267. data/data/problems/183.yml +17 -23
  268. data/data/problems/184.yml +11 -14
  269. data/data/problems/185.yml +17 -18
  270. data/data/problems/186.yml +16 -24
  271. data/data/problems/187.yml +9 -12
  272. data/data/problems/188.yml +5 -6
  273. data/data/problems/189.yml +5 -7
  274. data/data/problems/19.yml +7 -8
  275. data/data/problems/190.yml +7 -9
  276. data/data/problems/191.yml +9 -10
  277. data/data/problems/192.yml +14 -22
  278. data/data/problems/193.yml +5 -3
  279. data/data/problems/194.yml +11 -14
  280. data/data/problems/195.yml +7 -9
  281. data/data/problems/196.yml +13 -21
  282. data/data/problems/197.yml +7 -11
  283. data/data/problems/198.yml +13 -16
  284. data/data/problems/199.yml +10 -10
  285. data/data/problems/2.yml +6 -6
  286. data/data/problems/20.yml +10 -18
  287. data/data/problems/200.yml +8 -8
  288. data/data/problems/201.yml +14 -16
  289. data/data/problems/202.yml +11 -10
  290. data/data/problems/203.yml +11 -16
  291. data/data/problems/204.yml +7 -7
  292. data/data/problems/205.yml +6 -6
  293. data/data/problems/206.yml +2 -2
  294. data/data/problems/207.yml +13 -16
  295. data/data/problems/208.yml +8 -8
  296. data/data/problems/209.yml +11 -23
  297. data/data/problems/21.yml +8 -9
  298. data/data/problems/210.yml +6 -6
  299. data/data/problems/211.yml +7 -7
  300. data/data/problems/212.yml +26 -36
  301. data/data/problems/213.yml +6 -7
  302. data/data/problems/214.yml +10 -11
  303. data/data/problems/215.yml +11 -14
  304. data/data/problems/216.yml +7 -10
  305. data/data/problems/217.yml +14 -23
  306. data/data/problems/218.yml +9 -10
  307. data/data/problems/219.yml +10 -15
  308. data/data/problems/22.yml +7 -9
  309. data/data/problems/220.yml +15 -20
  310. data/data/problems/221.yml +10 -16
  311. data/data/problems/222.yml +5 -3
  312. data/data/problems/223.yml +6 -8
  313. data/data/problems/224.yml +6 -8
  314. data/data/problems/225.yml +6 -7
  315. data/data/problems/226.yml +9 -12
  316. data/data/problems/227.yml +9 -9
  317. data/data/problems/228.yml +14 -17
  318. data/data/problems/229.yml +17 -25
  319. data/data/problems/23.yml +11 -15
  320. data/data/problems/230.yml +15 -19
  321. data/data/problems/231.yml +8 -12
  322. data/data/problems/232.yml +9 -10
  323. data/data/problems/233.yml +7 -6
  324. data/data/problems/234.yml +14 -19
  325. data/data/problems/235.yml +4 -5
  326. data/data/problems/236.yml +20 -22
  327. data/data/problems/237.yml +14 -9
  328. data/data/problems/238.yml +21 -33
  329. data/data/problems/239.yml +5 -5
  330. data/data/problems/24.yml +7 -6
  331. data/data/problems/240.yml +7 -7
  332. data/data/problems/241.yml +9 -12
  333. data/data/problems/242.yml +7 -9
  334. data/data/problems/243.yml +14 -15
  335. data/data/problems/244.yml +19 -28
  336. data/data/problems/245.yml +22 -30
  337. data/data/problems/246.yml +10 -13
  338. data/data/problems/247.yml +14 -17
  339. data/data/problems/248.yml +5 -2
  340. data/data/problems/249.yml +3 -3
  341. data/data/problems/25.yml +12 -11
  342. data/data/problems/250.yml +3 -3
  343. data/data/problems/251.yml +11 -9
  344. data/data/problems/252.yml +24 -25
  345. data/data/problems/253.yml +19 -32
  346. data/data/problems/254.yml +13 -17
  347. data/data/problems/255.yml +40 -50
  348. data/data/problems/256.yml +31 -39
  349. data/data/problems/257.yml +10 -14
  350. data/data/problems/258.yml +7 -9
  351. data/data/problems/259.yml +14 -12
  352. data/data/problems/26.yml +17 -7
  353. data/data/problems/260.yml +21 -25
  354. data/data/problems/261.yml +13 -15
  355. data/data/problems/262.yml +15 -16
  356. data/data/problems/263.yml +13 -15
  357. data/data/problems/264.yml +15 -16
  358. data/data/problems/265.yml +10 -12
  359. data/data/problems/266.yml +6 -6
  360. data/data/problems/267.yml +13 -10
  361. data/data/problems/268.yml +5 -4
  362. data/data/problems/269.yml +10 -11
  363. data/data/problems/27.yml +15 -21
  364. data/data/problems/270.yml +13 -13
  365. data/data/problems/271.yml +7 -9
  366. data/data/problems/272.yml +8 -11
  367. data/data/problems/273.yml +13 -17
  368. data/data/problems/274.yml +16 -19
  369. data/data/problems/275.yml +13 -15
  370. data/data/problems/276.yml +5 -7
  371. data/data/problems/277.yml +17 -20
  372. data/data/problems/278.yml +20 -28
  373. data/data/problems/279.yml +4 -3
  374. data/data/problems/28.yml +6 -13
  375. data/data/problems/280.yml +9 -9
  376. data/data/problems/281.yml +10 -13
  377. data/data/problems/282.yml +9 -6
  378. data/data/problems/283.yml +8 -8
  379. data/data/problems/284.yml +15 -18
  380. data/data/problems/285.yml +11 -11
  381. data/data/problems/286.yml +7 -8
  382. data/data/problems/287.yml +22 -32
  383. data/data/problems/288.yml +10 -11
  384. data/data/problems/289.yml +14 -15
  385. data/data/problems/29.yml +13 -20
  386. data/data/problems/290.yml +3 -4
  387. data/data/problems/291.yml +3 -6
  388. data/data/problems/292.yml +8 -9
  389. data/data/problems/293.yml +9 -10
  390. data/data/problems/294.yml +6 -6
  391. data/data/problems/295.yml +16 -21
  392. data/data/problems/296.yml +9 -11
  393. data/data/problems/297.yml +12 -15
  394. data/data/problems/298.yml +29 -29
  395. data/data/problems/299.yml +15 -21
  396. data/data/problems/3.yml +3 -3
  397. data/data/problems/30.yml +7 -8
  398. data/data/problems/300.yml +15 -16
  399. data/data/problems/301.yml +15 -17
  400. data/data/problems/302.yml +13 -14
  401. data/data/problems/303.yml +9 -7
  402. data/data/problems/304.yml +10 -15
  403. data/data/problems/305.yml +6 -10
  404. data/data/problems/306.yml +20 -24
  405. data/data/problems/307.yml +7 -8
  406. data/data/problems/308.yml +19 -30
  407. data/data/problems/309.yml +11 -12
  408. data/data/problems/31.yml +11 -14
  409. data/data/problems/310.yml +10 -15
  410. data/data/problems/311.yml +11 -17
  411. data/data/problems/312.yml +10 -11
  412. data/data/problems/313.yml +13 -13
  413. data/data/problems/314.yml +23 -25
  414. data/data/problems/315.yml +39 -45
  415. data/data/problems/316.yml +13 -13
  416. data/data/problems/317.yml +6 -7
  417. data/data/problems/318.yml +35 -57
  418. data/data/problems/319.yml +15 -19
  419. data/data/problems/32.yml +9 -10
  420. data/data/problems/320.yml +9 -8
  421. data/data/problems/321.yml +8 -9
  422. data/data/problems/322.yml +6 -8
  423. data/data/problems/323.yml +12 -15
  424. data/data/problems/324.yml +10 -13
  425. data/data/problems/325.yml +15 -21
  426. data/data/problems/326.yml +15 -8
  427. data/data/problems/327.yml +19 -23
  428. data/data/problems/328.yml +28 -31
  429. data/data/problems/329.yml +12 -13
  430. data/data/problems/33.yml +9 -9
  431. data/data/problems/330.yml +17 -36
  432. data/data/problems/331.yml +16 -22
  433. data/data/problems/332.yml +9 -11
  434. data/data/problems/333.yml +17 -20
  435. data/data/problems/334.yml +22 -34
  436. data/data/problems/335.yml +11 -12
  437. data/data/problems/336.yml +18 -20
  438. data/data/problems/337.yml +9 -11
  439. data/data/problems/338.yml +27 -37
  440. data/data/problems/339.yml +9 -9
  441. data/data/problems/34.yml +7 -3
  442. data/data/problems/340.yml +8 -10
  443. data/data/problems/341.yml +12 -14
  444. data/data/problems/342.yml +9 -13
  445. data/data/problems/343.yml +18 -25
  446. data/data/problems/344.yml +16 -17
  447. data/data/problems/345.yml +17 -22
  448. data/data/problems/346.yml +7 -7
  449. data/data/problems/347.yml +9 -12
  450. data/data/problems/348.yml +7 -8
  451. data/data/problems/349.yml +8 -9
  452. data/data/problems/35.yml +7 -4
  453. data/data/problems/350.yml +12 -14
  454. data/data/problems/351.yml +8 -9
  455. data/data/problems/352.yml +38 -42
  456. data/data/problems/353.yml +17 -21
  457. data/data/problems/354.yml +11 -13
  458. data/data/problems/355.yml +4 -4
  459. data/data/problems/356.yml +6 -6
  460. data/data/problems/357.yml +5 -5
  461. data/data/problems/358.yml +16 -25
  462. data/data/problems/359.yml +19 -22
  463. data/data/problems/36.yml +7 -4
  464. data/data/problems/360.yml +8 -8
  465. data/data/problems/361.yml +14 -15
  466. data/data/problems/362.yml +16 -28
  467. data/data/problems/363.yml +22 -23
  468. data/data/problems/364.yml +9 -11
  469. data/data/problems/365.yml +7 -13
  470. data/data/problems/366.yml +19 -22
  471. data/data/problems/367.yml +14 -15
  472. data/data/problems/368.yml +18 -35
  473. data/data/problems/369.yml +7 -11
  474. data/data/problems/37.yml +7 -6
  475. data/data/problems/370.yml +10 -13
  476. data/data/problems/371.yml +8 -9
  477. data/data/problems/372.yml +9 -12
  478. data/data/problems/373.yml +5 -6
  479. data/data/problems/374.yml +17 -21
  480. data/data/problems/375.yml +13 -17
  481. data/data/problems/376.yml +19 -21
  482. data/data/problems/377.yml +6 -7
  483. data/data/problems/378.yml +8 -11
  484. data/data/problems/379.yml +9 -11
  485. data/data/problems/38.yml +9 -13
  486. data/data/problems/380.yml +14 -17
  487. data/data/problems/381.yml +12 -18
  488. data/data/problems/382.yml +16 -19
  489. data/data/problems/383.yml +7 -9
  490. data/data/problems/384.yml +20 -24
  491. data/data/problems/385.yml +12 -16
  492. data/data/problems/386.yml +9 -11
  493. data/data/problems/387.yml +14 -15
  494. data/data/problems/388.yml +6 -8
  495. data/data/problems/389.yml +8 -8
  496. data/data/problems/39.yml +7 -6
  497. data/data/problems/390.yml +9 -14
  498. data/data/problems/391.yml +21 -25
  499. data/data/problems/392.yml +16 -17
  500. data/data/problems/393.yml +5 -6
  501. data/data/problems/394.yml +15 -18
  502. data/data/problems/395.yml +12 -13
  503. data/data/problems/396.yml +17 -22
  504. data/data/problems/397.yml +13 -16
  505. data/data/problems/398.yml +8 -9
  506. data/data/problems/399.yml +18 -18
  507. data/data/problems/4.yml +5 -4
  508. data/data/problems/40.yml +11 -14
  509. data/data/problems/400.yml +10 -11
  510. data/data/problems/401.yml +6 -7
  511. data/data/problems/402.yml +16 -21
  512. data/data/problems/403.yml +12 -14
  513. data/data/problems/404.yml +14 -16
  514. data/data/problems/405.yml +10 -11
  515. data/data/problems/406.yml +35 -41
  516. data/data/problems/407.yml +9 -16
  517. data/data/problems/408.yml +9 -9
  518. data/data/problems/409.yml +5 -7
  519. data/data/problems/41.yml +5 -4
  520. data/data/problems/410.yml +10 -13
  521. data/data/problems/411.yml +15 -19
  522. data/data/problems/412.yml +11 -15
  523. data/data/problems/413.yml +8 -8
  524. data/data/problems/414.yml +29 -34
  525. data/data/problems/415.yml +12 -15
  526. data/data/problems/416.yml +7 -7
  527. data/data/problems/417.yml +16 -17
  528. data/data/problems/418.yml +9 -12
  529. data/data/problems/419.yml +13 -18
  530. data/data/problems/42.yml +9 -10
  531. data/data/problems/420.yml +5 -6
  532. data/data/problems/421.yml +14 -25
  533. data/data/problems/422.yml +16 -18
  534. data/data/problems/423.yml +16 -18
  535. data/data/problems/424.yml +18 -19
  536. data/data/problems/425.yml +11 -12
  537. data/data/problems/426.yml +20 -21
  538. data/data/problems/427.yml +11 -13
  539. data/data/problems/428.yml +21 -25
  540. data/data/problems/429.yml +6 -6
  541. data/data/problems/43.yml +15 -13
  542. data/data/problems/430.yml +14 -16
  543. data/data/problems/44.yml +9 -12
  544. data/data/problems/45.yml +11 -11
  545. data/data/problems/46.yml +9 -14
  546. data/data/problems/47.yml +11 -16
  547. data/data/problems/48.yml +5 -3
  548. data/data/problems/49.yml +7 -6
  549. data/data/problems/5.yml +5 -4
  550. data/data/problems/50.yml +11 -6
  551. data/data/problems/51.yml +9 -11
  552. data/data/problems/52.yml +5 -4
  553. data/data/problems/53.yml +15 -24
  554. data/data/problems/54.yml +29 -39
  555. data/data/problems/55.yml +16 -17
  556. data/data/problems/56.yml +5 -7
  557. data/data/problems/57.yml +10 -11
  558. data/data/problems/58.yml +11 -18
  559. data/data/problems/59.yml +11 -19
  560. data/data/problems/6.yml +13 -9
  561. data/data/problems/60.yml +5 -6
  562. data/data/problems/61.yml +18 -26
  563. data/data/problems/62.yml +5 -5
  564. data/data/problems/63.yml +5 -3
  565. data/data/problems/64.yml +52 -126
  566. data/data/problems/65.yml +21 -47
  567. data/data/problems/66.yml +13 -23
  568. data/data/problems/67.yml +10 -13
  569. data/data/problems/68.yml +15 -19
  570. data/data/problems/69.yml +18 -10
  571. data/data/problems/7.yml +5 -2
  572. data/data/problems/70.yml +10 -12
  573. data/data/problems/71.yml +11 -13
  574. data/data/problems/72.yml +11 -12
  575. data/data/problems/73.yml +11 -12
  576. data/data/problems/74.yml +25 -37
  577. data/data/problems/75.yml +10 -12
  578. data/data/problems/76.yml +4 -4
  579. data/data/problems/77.yml +4 -4
  580. data/data/problems/78.yml +13 -8
  581. data/data/problems/79.yml +7 -7
  582. data/data/problems/8.yml +14 -8
  583. data/data/problems/80.yml +7 -7
  584. data/data/problems/81.yml +9 -15
  585. data/data/problems/82.yml +10 -15
  586. data/data/problems/83.yml +10 -19
  587. data/data/problems/84.yml +36 -59
  588. data/data/problems/85.yml +7 -5
  589. data/data/problems/86.yml +11 -11
  590. data/data/problems/87.yml +7 -8
  591. data/data/problems/88.yml +30 -49
  592. data/data/problems/89.yml +13 -14
  593. data/data/problems/9.yml +6 -9
  594. data/data/problems/90.yml +16 -18
  595. data/data/problems/91.yml +10 -15
  596. data/data/problems/92.yml +14 -25
  597. data/data/problems/93.yml +13 -17
  598. data/data/problems/94.yml +7 -7
  599. data/data/problems/95.yml +13 -19
  600. data/data/problems/96.yml +24 -40
  601. data/data/problems/97.yml +7 -10
  602. data/data/problems/98.yml +9 -12
  603. data/data/problems/99.yml +9 -12
  604. data/euler-manager.gemspec +1 -0
  605. data/example/1/README.md +4 -4
  606. data/example/15/README.md +8 -0
  607. data/example/15/python/15.py +5 -0
  608. data/example/15/python/euler.py +0 -0
  609. data/example/2/README.md +7 -5
  610. data/example/Eulerfile.rb +1 -0
  611. data/lib/euler/problem.rb +6 -1
  612. data/lib/euler/solution.rb +4 -2
  613. data/lib/euler/version.rb +1 -1
  614. data/rake/clean.rake +16 -0
  615. data/rake/update.rake +88 -0
  616. data/spec/euler/solution_spec.rb +2 -1
  617. data/templates/Eulerfile.rb +12 -0
  618. metadata +189 -29
  619. data/data/problems/431.yml +0 -33
  620. data/data/problems/432.yml +0 -13
  621. data/data/problems/433.yml +0 -18
  622. data/data/problems/434.yml +0 -32
  623. data/data/problems/435.yml +0 -21
  624. data/data/problems/436.yml +0 -21
  625. data/data/problems/437.yml +0 -22
  626. data/data/problems/438.yml +0 -29
  627. data/data/problems/439.yml +0 -17
  628. data/data/problems/440.yml +0 -21
  629. data/data/problems/441.yml +0 -23
  630. data/data/problems/442.yml +0 -9
  631. data/data/problems/443.yml +0 -13
  632. data/data/problems/444.yml +0 -28
  633. data/data/problems/445.yml +0 -37
  634. data/data/problems/446.yml +0 -29
  635. data/data/problems/447.yml +0 -31
  636. data/data/problems/448.yml +0 -14
  637. data/data/problems/449.yml +0 -17
  638. data/data/problems/450.yml +0 -26
  639. data/data/problems/451.yml +0 -15
  640. data/data/problems/452.yml +0 -8
  641. data/data/problems/453.yml +0 -16
  642. data/data/problems/454.yml +0 -17
  643. data/data/problems/455.yml +0 -16
  644. data/data/problems/456.yml +0 -15
  645. data/scripts/update_problems +0 -68
data/data/problems/73.yml CHANGED
@@ -2,15 +2,14 @@
2
2
  :id: 73
3
3
  :name: Counting fractions in a range
4
4
  :url: http://projecteuler.net/problem=73
5
- :content: "\r\n<p>Consider the fraction, <i>n/d</i>, where <i>n</i> and <i>d</i> are
6
- positive integers. If <i>n</i><img src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\"
7
- alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"><i>d</i> and HCF(<i>n,d</i>)=1,
8
- it is called a reduced proper fraction.</p>\r\n<p>If we list the set of reduced
9
- proper fractions for <i>d</i> <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\"
10
- alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"> 8 in ascending order of
11
- size, we get:</p>\r\n<p style=\"text-align:center;font-size:8pt;\">1/8, 1/7, 1/6,
12
- 1/5, 1/4, 2/7, 1/3, <b>3/8, 2/5, 3/7</b>, 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5,
13
- 5/6, 6/7, 7/8</p>\r\n<p>It can be seen that there are 3 fractions between 1/3 and
14
- 1/2.</p>\r\n<p>How many fractions lie between 1/3 and 1/2 in the sorted set of reduced
15
- proper fractions for <i>d</i> <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\"
16
- alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"> 12,000?</p>\r\n\r\n\r\n"
5
+ :content: |+
6
+ Consider the fraction, _n/d_, where _n_ and _d_ are positive integers. If _n_ ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)_d_ and HCF(_n,d_)=1, it is called a reduced proper fraction.
7
+
8
+ If we list the set of reduced proper fractions for _d_ ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) 8 in ascending order of size, we get:
9
+
10
+ 1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, **3/8, 2/5, 3/7** , 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8
11
+
12
+ It can be seen that there are 3 fractions between 1/3 and 1/2.
13
+
14
+ How many fractions lie between 1/3 and 1/2 in the sorted set of reduced proper fractions for _d_ ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) 12,000?
15
+
data/data/problems/74.yml CHANGED
@@ -2,40 +2,28 @@
2
2
  :id: 74
3
3
  :name: Digit factorial chains
4
4
  :url: http://projecteuler.net/problem=74
5
- :content: "\r\n\n<p>The number 145 is well known for the property that the sum of
6
- the factorial of its digits is equal to 145:</p>\n<p style=\"margin-left:50px;\">1!
7
- + 4! + 5! = 1 + 24 + 120 = 145</p>\n<p>Perhaps less well known is 169, in that it
8
- produces the longest chain of numbers that link back to 169; it turns out that there
9
- are only three such loops that exist:</p>\n<p style=\"margin-left:50px;\">169 <img
10
- src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
11
- style=\"vertical-align:middle;\"> 363601 <img src=\"images/symbol_maps.gif\" width=\"15\"
12
- height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\"> 1454 <img
13
- src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
14
- style=\"vertical-align:middle;\"> 169<br>\n871 <img src=\"images/symbol_maps.gif\"
15
- width=\"15\" height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\">
16
- 45361 <img src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
17
- style=\"vertical-align:middle;\"> 871<br>\n872 <img src=\"images/symbol_maps.gif\"
18
- width=\"15\" height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\">
19
- 45362 <img src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
20
- style=\"vertical-align:middle;\"> 872</p>\n<p>It is not difficult to prove that
21
- EVERY starting number will eventually get stuck in a loop. For example,</p>\n<p
22
- style=\"margin-left:50px;\">69 <img src=\"images/symbol_maps.gif\" width=\"15\"
23
- height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\"> 363600 <img
24
- src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
25
- style=\"vertical-align:middle;\"> 1454 <img src=\"images/symbol_maps.gif\" width=\"15\"
26
- height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\"> 169 <img src=\"images/symbol_maps.gif\"
27
- width=\"15\" height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\">
28
- 363601 (<img src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\"
29
- border=\"0\" style=\"vertical-align:middle;\"> 1454)<br>\n78 <img src=\"images/symbol_maps.gif\"
30
- width=\"15\" height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\">
31
- 45360 <img src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
32
- style=\"vertical-align:middle;\"> 871 <img src=\"images/symbol_maps.gif\" width=\"15\"
33
- height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\"> 45361 (<img
34
- src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
35
- style=\"vertical-align:middle;\"> 871)<br>\n540 <img src=\"images/symbol_maps.gif\"
36
- width=\"15\" height=\"7\" alt=\"→\" border=\"0\" style=\"vertical-align:middle;\">
37
- 145 (<img src=\"images/symbol_maps.gif\" width=\"15\" height=\"7\" alt=\"→\" border=\"0\"
38
- style=\"vertical-align:middle;\"> 145)</p>\n<p>Starting with 69 produces a chain
39
- of five non-repeating terms, but the longest non-repeating chain with a starting
40
- number below one million is sixty terms.</p>\n<p>How many chains, with a starting
41
- number below one million, contain exactly sixty non-repeating terms?</p>\n\r\n"
5
+ :content: "The number 145 is well known for the property that the sum of the factorial
6
+ of its digits is equal to 145:\n\n1! + 4! + 5! = 1 + 24 + 120 = 145\n\nPerhaps less
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 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
9
+ 363601 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
10
+ 1454 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 169
11
+ \ \n871 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
12
+ 45361 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 871
13
+ \ \n872 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
14
+ 45362 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 872\n\nIt
15
+ is not difficult to prove that EVERY starting number will eventually get stuck in
16
+ a loop. For example,\n\n69 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
17
+ 363600 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
18
+ 1454 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 169
19
+ ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 363601
20
+ ( ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 1454)
21
+ \ \n78 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
22
+ 45360 ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 871
23
+ ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 45361 (
24
+ ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 871) \n540
25
+ ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif) 145 ( ![→](/home/will/src/euler-manager/config/../data/images/symbol_maps.gif)
26
+ 145)\n\nStarting with 69 produces a chain of five non-repeating terms, but the longest
27
+ non-repeating chain with a starting number below one million is sixty terms.\n\nHow
28
+ many chains, with a starting number below one million, contain exactly sixty non-repeating
29
+ terms?\n\n"
data/data/problems/75.yml CHANGED
@@ -2,15 +2,13 @@
2
2
  :id: 75
3
3
  :name: Singular integer right triangles
4
4
  :url: http://projecteuler.net/problem=75
5
- :content: "\r\n<p>It turns out that 12 cm is the smallest length of wire that can
6
- be bent to form an integer sided right angle triangle in exactly one way, but there
7
- are many more examples.</p>\r\n<p style=\"margin-left:50px;\"><b>12 cm</b>: (3,4,5)<br><b>24
8
- cm</b>: (6,8,10)<br><b>30 cm</b>: (5,12,13)<br><b>36 cm</b>: (9,12,15)<br><b>40
9
- cm</b>: (8,15,17)<br><b>48 cm</b>: (12,16,20)</p>\r\n<p>In contrast, some lengths
10
- of wire, like 20 cm, cannot be bent to form an integer sided right angle triangle,
11
- and other lengths allow more than one solution to be found; for example, using 120
12
- cm it is possible to form exactly three different integer sided right angle triangles.</p>\r\n<p
13
- style=\"margin-left:50px;\"><b>120 cm</b>: (30,40,50), (20,48,52), (24,45,51)</p>\r\n<p>Given
14
- that L is the length of the wire, for how many values of L <img src=\"images/symbol_le.gif\"
15
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">
16
- 1,500,000 can exactly one integer sided right angle triangle be formed?</p>\r\n\r\n"
5
+ :content: "It turns out that 12 cm is the smallest length of wire that can be bent
6
+ to form an integer sided right angle triangle in exactly one way, but there are
7
+ many more examples.\n\n**12 cm** : (3,4,5) \n**24 cm** : (6,8,10) \n**30 cm**
8
+ : (5,12,13) \n**36 cm** : (9,12,15) \n**40 cm** : (8,15,17) \n**48 cm** : (12,16,20)\n\nIn
9
+ contrast, some lengths of wire, like 20 cm, cannot be bent to form an integer sided
10
+ right angle triangle, and other lengths allow more than one solution to be found;
11
+ for example, using 120 cm it is possible to form exactly three different integer
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 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
14
+ 1,500,000 can exactly one integer sided right angle triangle be formed?\n\n"
data/data/problems/76.yml CHANGED
@@ -2,7 +2,7 @@
2
2
  :id: 76
3
3
  :name: Counting summations
4
4
  :url: http://projecteuler.net/problem=76
5
- :content: "\r\n\n<p>It is possible to write five as a sum in exactly six different
6
- ways:</p>\n<p style=\"margin-left:50px;\">4 + 1<br>\n3 + 2<br>\n3 + 1 + 1<br>\n2
7
- + 2 + 1<br>\n2 + 1 + 1 + 1<br>\n1 + 1 + 1 + 1 + 1</p>\n<p>How many different ways
8
- can one hundred be written as a sum of at least two positive integers?</p>\n\r\n"
5
+ :content: "It is possible to write five as a sum in exactly six different ways:\n\n4
6
+ + 1 \n3 + 2 \n3 + 1 + 1 \n2 + 2 + 1 \n2 + 1 + 1 + 1 \n1 + 1 + 1 + 1 + 1\n\nHow
7
+ many different ways can one hundred be written as a sum of at least two positive
8
+ integers?\n\n"
data/data/problems/77.yml CHANGED
@@ -2,7 +2,7 @@
2
2
  :id: 77
3
3
  :name: Prime summations
4
4
  :url: http://projecteuler.net/problem=77
5
- :content: "\r\n\n<p>It is possible to write ten as the sum of primes in exactly five
6
- different ways:</p>\n<p style=\"margin-left:50px;\">7 + 3<br>\n5 + 5<br>\n5 + 3
7
- + 2<br>\n3 + 3 + 2 + 2<br>\n2 + 2 + 2 + 2 + 2</p>\n<p>What is the first value which
8
- can be written as the sum of primes in over five thousand different ways?</p>\n\r\n"
5
+ :content: "It is possible to write ten as the sum of primes in exactly five different
6
+ ways:\n\n7 + 3 \n5 + 5 \n5 + 3 + 2 \n3 + 3 + 2 + 2 \n2 + 2 + 2 + 2 + 2\n\nWhat
7
+ is the first value which can be written as the sum of primes in over five thousand
8
+ different ways?\n\n"
data/data/problems/78.yml CHANGED
@@ -2,11 +2,16 @@
2
2
  :id: 78
3
3
  :name: Coin partitions
4
4
  :url: http://projecteuler.net/problem=78
5
- :content: "\r\n<p>Let p(<i>n</i>) represent the number of different ways in which
6
- <i>n</i> coins can be separated into piles. For example, five coins can separated
7
- into piles in exactly seven different ways, so p(5)=7.</p>\r\n<div style=\"text-align:center;\">\r\n<table
8
- cellspacing=\"0\" cellpadding=\"10\">\n<tr>\n<td>OOOOO</td>\r\n</tr>\n<tr>\n<td>OOOO 
9
-  O</td>\r\n</tr>\n<tr>\n<td>OOO   OO</td>\r\n</tr>\n<tr>\n<td>OOO   O   O</td>\r\n</tr>\n<tr>\n<td>OO 
10
-  OO   O</td>\r\n</tr>\n<tr>\n<td>OO   O   O   O</td>\r\n</tr>\n<tr>\n<td>O   O 
11
-  O   O   O</td>\r\n</tr>\n</table>\n</div>\r\n<p>Find the least value of <i>n</i>
12
- for which p(<i>n</i>) is divisible by one million.</p>\r\n\r\n"
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.
7
+
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 |
15
+
16
+ Find the least value of _n_ for which p(_n_) is divisible by one million.
17
+
data/data/problems/79.yml CHANGED
@@ -2,10 +2,10 @@
2
2
  :id: 79
3
3
  :name: Passcode derivation
4
4
  :url: http://projecteuler.net/problem=79
5
- :content: "\r\n<p>A common security method used for online banking is to ask the user
6
- for three random characters from a passcode. For example, if the passcode was 531278,
7
- they may ask for the 2nd, 3rd, and 5th characters; the expected reply would be:
8
- 317.</p>\r\n<p>The text file, <a href=\"project/keylog.txt\">keylog.txt</a>, contains
9
- fifty successful login attempts.</p>\r\n<p>Given that the three characters are always
10
- asked for in order, analyse the file so as to determine the shortest possible secret
11
- passcode of unknown length.</p>\r\n\r\n"
5
+ :content: |+
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
+
8
+ The text file, [keylog.txt](project/keylog.txt), contains fifty successful login attempts.
9
+
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
+
data/data/problems/8.yml CHANGED
@@ -2,12 +2,18 @@
2
2
  :id: 8
3
3
  :name: Largest product in a series
4
4
  :url: http://projecteuler.net/problem=8
5
- :content: "\r\n<p>The four adjacent digits in the 1000-digit number that have the
6
- greatest product are 9 <img src=\"images/symbol_times.gif\" width=\"9\" height=\"9\"
7
- alt=\"×\" border=\"0\" style=\"vertical-align:middle;\"> 9 <img src=\"images/symbol_times.gif\"
8
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\">
9
- 8 <img src=\"images/symbol_times.gif\" width=\"9\" height=\"9\" alt=\"×\" border=\"0\"
10
- style=\"vertical-align:middle;\"> 9 = 5832.</p>\r\n<p style=\"font-family:courier
11
- new;text-align:center;\">\r\n73167176531330624919225119674426574742355349194934<br>\r\n96983520312774506326239578318016984801869478851843<br>\r\n85861560789112949495459501737958331952853208805511<br>\r\n12540698747158523863050715693290963295227443043557<br>\r\n66896648950445244523161731856403098711121722383113<br>\r\n62229893423380308135336276614282806444486645238749<br>\r\n30358907296290491560440772390713810515859307960866<br>\r\n70172427121883998797908792274921901699720888093776<br>\r\n65727333001053367881220235421809751254540594752243<br>\r\n52584907711670556013604839586446706324415722155397<br>\r\n53697817977846174064955149290862569321978468622482<br>\r\n83972241375657056057490261407972968652414535100474<br>\r\n82166370484403199890008895243450658541227588666881<br>\r\n16427171479924442928230863465674813919123162824586<br>\r\n17866458359124566529476545682848912883142607690042<br>\r\n24219022671055626321111109370544217506941658960408<br>\r\n07198403850962455444362981230987879927244284909188<br>\r\n84580156166097919133875499200524063689912560717606<br>\r\n05886116467109405077541002256983155200055935729725<br>\r\n71636269561882670428252483600823257530420752963450<br></p>\r\n<p>Find
5
+ :content: "The four adjacent digits in the 1000-digit number that have the greatest
6
+ product are 9 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif)
7
+ 9 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) 8 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif)
8
+ 9 = 5832.\n\n73167176531330624919225119674426574742355349194934 \n\r96983520312774506326239578318016984801869478851843
9
+ \ \n\r85861560789112949495459501737958331952853208805511 \n\r12540698747158523863050715693290963295227443043557
10
+ \ \n\r66896648950445244523161731856403098711121722383113 \n\r62229893423380308135336276614282806444486645238749
11
+ \ \n\r30358907296290491560440772390713810515859307960866 \n\r70172427121883998797908792274921901699720888093776
12
+ \ \n\r65727333001053367881220235421809751254540594752243 \n\r52584907711670556013604839586446706324415722155397
13
+ \ \n\r53697817977846174064955149290862569321978468622482 \n\r83972241375657056057490261407972968652414535100474
14
+ \ \n\r82166370484403199890008895243450658541227588666881 \n\r16427171479924442928230863465674813919123162824586
15
+ \ \n\r17866458359124566529476545682848912883142607690042 \n\r24219022671055626321111109370544217506941658960408
16
+ \ \n\r07198403850962455444362981230987879927244284909188 \n\r84580156166097919133875499200524063689912560717606
17
+ \ \n\r05886116467109405077541002256983155200055935729725 \n\r71636269561882670428252483600823257530420752963450\n\nFind
12
18
  the thirteen adjacent digits in the 1000-digit number that have the greatest product.
13
- What is the value of this product?</p>\r\n"
19
+ What is the value of this product?\n\n"
data/data/problems/80.yml CHANGED
@@ -2,10 +2,10 @@
2
2
  :id: 80
3
3
  :name: Square root digital expansion
4
4
  :url: http://projecteuler.net/problem=80
5
- :content: "\r\n\n<p>It is well known that if the square root of a natural number is
6
- not an integer, then it is irrational. The decimal expansion of such square roots
7
- is infinite without any repeating pattern at all.</p>\n<p>The square root of two
8
- is 1.41421356237309504880..., and the digital sum of the first one hundred decimal
9
- digits is 475.</p>\n<p>For the first one hundred natural numbers, find the total
10
- of the digital sums of the first one hundred decimal digits for all the irrational
11
- square roots.</p>\n\r\n"
5
+ :content: |+
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
+
8
+ The square root of two is 1.41421356237309504880..., and the digital sum of the first one hundred decimal digits is 475.
9
+
10
+ For the first one hundred natural numbers, find the total of the digital sums of the first one hundred decimal digits for all the irrational square roots.
11
+
data/data/problems/81.yml CHANGED
@@ -2,18 +2,12 @@
2
2
  :id: 81
3
3
  :name: 'Path sum: two ways'
4
4
  :url: http://projecteuler.net/problem=81
5
- :content: "\r\n<p>In the 5 by 5 matrix below, the minimal path sum from the top left
6
- to the bottom right, by <b>only moving to the right and down</b>, is indicated in
7
- bold red and is equal to 2427.</p>\r\n<div style=\"text-align:center;\">\r\n<table
8
- cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr>\n<td>\n<img
9
- src=\"images/bracket_left.gif\" width=\"8\" height=\"120\" alt=\"\" align=\"middle\"><br>\n</td>\r\n<td>\r\n<table
10
- cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\n<tr>\n<td><span style=\"color:#dd0000;\"><b>131</b></span></td>\n<td>673</td>\n<td>234</td>\n<td>103</td>\n<td>18</td>\r\n</tr>\n<tr>\n<td><span
11
- style=\"color:#dd0000;\"><b>201</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>96</b></span></td>\n<td><span
12
- style=\"color:#dd0000;\"><b>342</b></span></td>\n<td>965</td>\n<td>150</td>\r\n</tr>\n<tr>\n<td>630</td>\n<td>803</td>\n<td><span
13
- style=\"color:#dd0000;\"><b>746</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>422</b></span></td>\n<td>111</td>\r\n</tr>\n<tr>\n<td>537</td>\n<td>699</td>\n<td>497</td>\n<td><span
14
- style=\"color:#dd0000;\"><b>121</b></span></td>\n<td>956</td>\r\n</tr>\n<tr>\n<td>805</td>\n<td>732</td>\n<td>524</td>\n<td><span
15
- style=\"color:#dd0000;\"><b>37</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>331</b></span></td>\r\n</tr>\n</table>\n</td>\r\n<td>\n<img
16
- src=\"images/bracket_right.gif\" width=\"8\" height=\"120\" alt=\"\" align=\"middle\"><br>\n</td>\r\n</tr></table>\n</div>\r\n<p>Find
17
- the minimal path sum, in <a href=\"project/matrix.txt\">matrix.txt</a> (right click
18
- and 'Save Link/Target As...'), a 31K text file containing a 80 by 80 matrix, from
19
- the top left to the bottom right by only moving right and down.</p>\r\n\r\n"
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| ![](/home/will/src/euler-manager/config/../data/images/bracket_left.gif)
8
+ \ \n | \n\n| **131** | 673 | 234 | 103 | 18 |\n| **201** | **96** | **342** | 965
9
+ | 150 |\n| 630 | 803 | **746** | **422** | 111 |\n| 537 | 699 | 497 | **121** |
10
+ 956 |\n| 805 | 732 | 524 | **37** | **331** |\n\n | ![](/home/will/src/euler-manager/config/../data/images/bracket_right.gif)
11
+ \ \n |\n\nFind the minimal path sum, in [matrix.txt](project/matrix.txt) (right
12
+ click and 'Save Link/Target As...'), a 31K text file containing a 80 by 80 matrix,
13
+ from the top left to the bottom right by only moving right and down.\n\n"
data/data/problems/82.yml CHANGED
@@ -2,18 +2,13 @@
2
2
  :id: 82
3
3
  :name: 'Path sum: three ways'
4
4
  :url: http://projecteuler.net/problem=82
5
- :content: "\r\n<p class=\"note\">NOTE: This problem is a more challenging version
6
- of <a href=\"problem=81\">Problem 81</a>.</p>\r\n<p>The minimal path sum in the
7
- 5 by 5 matrix below, by starting in any cell in the left column and finishing in
8
- any cell in the right column, and only moving up, down, and right, is indicated
9
- in red and bold; the sum is equal to 994.</p>\r\n<div style=\"text-align:center;\">\r\n<table
10
- cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr>\n<td>\n<img
11
- src=\"images/bracket_left.gif\" width=\"8\" height=\"120\" alt=\"\" align=\"middle\"><br>\n</td>\r\n<td>\r\n<table
12
- cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\n<tr>\n<td>131</td>\n<td>673</td>\n<td><span
13
- style=\"color:#dd0000;\"><b>234</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>103</b></span></td>\n<td><span
14
- style=\"color:#dd0000;\"><b>18</b></span></td>\r\n</tr>\n<tr>\n<td><span style=\"color:#dd0000;\"><b>201</b></span></td>\n<td><span
15
- style=\"color:#dd0000;\"><b>96</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>342</b></span></td>\n<td>965</td>\n<td>150</td>\r\n</tr>\n<tr>\n<td>630</td>\n<td>803</td>\n<td>746</td>\n<td>422</td>\n<td>111</td>\r\n</tr>\n<tr>\n<td>537</td>\n<td>699</td>\n<td>497</td>\n<td>121</td>\n<td>956</td>\r\n</tr>\n<tr>\n<td>805</td>\n<td>732</td>\n<td>524</td>\n<td>37</td>\n<td>331</td>\r\n</tr>\n</table>\n</td>\r\n<td>\n<img
16
- src=\"images/bracket_right.gif\" width=\"8\" height=\"120\" alt=\"\" align=\"middle\"><br>\n</td>\r\n</tr></table>\n</div>\r\n<p>Find
17
- the minimal path sum, in <a href=\"project/matrix.txt\">matrix.txt</a> (right click
18
- and 'Save Link/Target As...'), a 31K text file containing a 80 by 80 matrix, from
19
- the left column to the right column.</p>\r\n\r\n"
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| ![](/home/will/src/euler-manager/config/../data/images/bracket_left.gif)
9
+ \ \n | \n\n| 131 | 673 | **234** | **103** | **18** |\n| **201** | **96** | **342**
10
+ | 965 | 150 |\n| 630 | 803 | 746 | 422 | 111 |\n| 537 | 699 | 497 | 121 | 956 |\n|
11
+ 805 | 732 | 524 | 37 | 331 |\n\n | ![](/home/will/src/euler-manager/config/../data/images/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"
data/data/problems/83.yml CHANGED
@@ -2,22 +2,13 @@
2
2
  :id: 83
3
3
  :name: 'Path sum: four ways'
4
4
  :url: http://projecteuler.net/problem=83
5
- :content: "\r\n<p class=\"note\">NOTE: This problem is a significantly more challenging
6
- version of <a href=\"problem=81\">Problem 81</a>.</p>\r\n<p>In the 5 by 5 matrix
7
- below, the minimal path sum from the top left to the bottom right, by moving left,
8
- right, up, and down, is indicated in bold red and is equal to 2297.</p>\r\n<div
9
- style=\"text-align:center;\">\r\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"
10
- align=\"center\"><tr>\n<td>\n<img src=\"images/bracket_left.gif\" width=\"8\" height=\"120\"
11
- alt=\"\" align=\"middle\"><br>\n</td>\r\n<td>\r\n<table cellpadding=\"3\" cellspacing=\"0\"
12
- border=\"0\">\n<tr>\n<td><span style=\"color:#dd0000;\"><b>131</b></span></td>\n<td>673</td>\n<td><span
13
- style=\"color:#dd0000;\"><b>234</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>103</b></span></td>\n<td><span
14
- style=\"color:#dd0000;\"><b>18</b></span></td>\r\n</tr>\n<tr>\n<td><span style=\"color:#dd0000;\"><b>201</b></span></td>\n<td><span
15
- style=\"color:#dd0000;\"><b>96</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>342</b></span></td>\n<td>965</td>\n<td><span
16
- style=\"color:#dd0000;\"><b>150</b></span></td>\r\n</tr>\n<tr>\n<td>630</td>\n<td>803</td>\n<td>746</td>\n<td><span
17
- style=\"color:#dd0000;\"><b>422</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>111</b></span></td>\r\n</tr>\n<tr>\n<td>537</td>\n<td>699</td>\n<td>497</td>\n<td><span
18
- style=\"color:#dd0000;\"><b>121</b></span></td>\n<td>956</td>\r\n</tr>\n<tr>\n<td>805</td>\n<td>732</td>\n<td>524</td>\n<td><span
19
- style=\"color:#dd0000;\"><b>37</b></span></td>\n<td><span style=\"color:#dd0000;\"><b>331</b></span></td>\r\n</tr>\n</table>\n</td>\r\n<td>\n<img
20
- src=\"images/bracket_right.gif\" width=\"8\" height=\"120\" alt=\"\" align=\"middle\"><br>\n</td>\r\n</tr></table>\n</div>\r\n<p>Find
21
- the minimal path sum, in <a href=\"project/matrix.txt\">matrix.txt</a> (right click
22
- and 'Save Link/Target As...'), a 31K text file containing a 80 by 80 matrix, from
23
- the top left to the bottom right by moving left, right, up, and down.</p>\r\n\r\n"
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| ![](/home/will/src/euler-manager/config/../data/images/bracket_left.gif)
9
+ \ \n | \n\n| **131** | 673 | **234** | **103** | **18** |\n| **201** | **96** |
10
+ **342** | 965 | **150** |\n| 630 | 803 | 746 | **422** | **111** |\n| 537 | 699
11
+ | 497 | **121** | 956 |\n| 805 | 732 | 524 | **37** | **331** |\n\n | ![](/home/will/src/euler-manager/config/../data/images/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"
data/data/problems/84.yml CHANGED
@@ -2,62 +2,39 @@
2
2
  :id: 84
3
3
  :name: Monopoly odds
4
4
  :url: http://projecteuler.net/problem=84
5
- :content: "\r\n<p>In the game, <i>Monopoly</i>, the standard board is set up in the
6
- following way:</p>\r\n<div style=\"text-align:center;\">\r\n<table cellspacing=\"1\"
7
- cellpadding=\"5\" border=\"0\" style=\"background-color:#333333;\" align=\"center\">\n<tr>\n<td
8
- style=\"background-color:#ffffff;\">GO</td>\r\n<td style=\"background-color:#ffffff;\">A1</td>\r\n<td
9
- style=\"background-color:#ffffff;\">CC1</td>\r\n<td style=\"background-color:#ffffff;\">A2</td>\r\n<td
10
- style=\"background-color:#ffffff;\">T1</td>\r\n<td style=\"background-color:#ffffff;\">R1</td>\r\n<td
11
- style=\"background-color:#ffffff;\">B1</td>\r\n<td style=\"background-color:#ffffff;\">CH1</td>\r\n<td
12
- style=\"background-color:#ffffff;\">B2</td>\r\n<td style=\"background-color:#ffffff;\">B3</td>\r\n<td
13
- style=\"background-color:#ffffff;\">JAIL</td>\r\n</tr>\n<tr>\n<td style=\"background-color:#ffffff;\">H2</td>\r\n<td
14
- colspan=\"9\"> </td>\r\n<td style=\"background-color:#ffffff;\">C1</td>\r\n</tr>\n<tr>\n<td
15
- style=\"background-color:#ffffff;\">T2</td>\r\n<td colspan=\"9\"> </td>\r\n<td style=\"background-color:#ffffff;\">U1</td>\r\n</tr>\n<tr>\n<td
16
- style=\"background-color:#ffffff;\">H1</td>\r\n<td colspan=\"9\"> </td>\r\n<td style=\"background-color:#ffffff;\">C2</td>\r\n</tr>\n<tr>\n<td
17
- style=\"background-color:#ffffff;\">CH3</td>\r\n<td colspan=\"9\"> </td>\r\n<td
18
- style=\"background-color:#ffffff;\">C3</td>\r\n</tr>\n<tr>\n<td style=\"background-color:#ffffff;\">R4</td>\r\n<td
19
- colspan=\"9\"> </td>\r\n<td style=\"background-color:#ffffff;\">R2</td>\r\n</tr>\n<tr>\n<td
20
- style=\"background-color:#ffffff;\">G3</td>\r\n<td colspan=\"9\"> </td>\r\n<td style=\"background-color:#ffffff;\">D1</td>\r\n</tr>\n<tr>\n<td
21
- style=\"background-color:#ffffff;\">CC3</td>\r\n<td colspan=\"9\"> </td>\r\n<td
22
- style=\"background-color:#ffffff;\">CC2</td>\r\n</tr>\n<tr>\n<td style=\"background-color:#ffffff;\">G2</td>\r\n<td
23
- colspan=\"9\"> </td>\r\n<td style=\"background-color:#ffffff;\">D2</td>\r\n</tr>\n<tr>\n<td
24
- style=\"background-color:#ffffff;\">G1</td>\r\n<td colspan=\"9\"> </td>\r\n<td style=\"background-color:#ffffff;\">D3</td>\r\n</tr>\n<tr>\n<td
25
- style=\"background-color:#ffffff;\">G2J</td>\r\n<td style=\"background-color:#ffffff;\">F3</td>\r\n<td
26
- style=\"background-color:#ffffff;\">U2</td>\r\n<td style=\"background-color:#ffffff;\">F2</td>\r\n<td
27
- style=\"background-color:#ffffff;\">F1</td>\r\n<td style=\"background-color:#ffffff;\">R3</td>\r\n<td
28
- style=\"background-color:#ffffff;\">E3</td>\r\n<td style=\"background-color:#ffffff;\">E2</td>\r\n<td
29
- style=\"background-color:#ffffff;\">CH2</td>\r\n<td style=\"background-color:#ffffff;\">E1</td>\r\n<td
30
- style=\"background-color:#ffffff;\">FP</td>\r\n</tr>\n</table>\n</div>\r\n<p>A player
31
- starts on the GO square and adds the scores on two 6-sided dice to determine the
32
- number of squares they advance in a clockwise direction. Without any further rules
33
- we would expect to visit each square with equal probability: 2.5%. However, landing
34
- on G2J (Go To Jail), CC (community chest), and CH (chance) changes this distribution.</p>\r\n<p>In
35
- addition to G2J, and one card from each of CC and CH, that orders the player to
36
- go directly to jail, if a player rolls three consecutive doubles, they do not advance
37
- the result of their 3rd roll. Instead they proceed directly to jail.</p>\r\n<p>At
38
- the beginning of the game, the CC and CH cards are shuffled. When a player lands
39
- on CC or CH they take a card from the top of the respective pile and, after following
40
- the instructions, it is returned to the bottom of the pile. There are sixteen cards
41
- in each pile, but for the purpose of this problem we are only concerned with cards
42
- that order a movement; any instruction not concerned with movement will be ignored
43
- and the player will remain on the CC/CH square.</p>\r\n<ul>\n<li>Community Chest
44
- (2/16 cards):\r\n<ol>\n<li>Advance to GO</li>\r\n<li>Go to JAIL</li>\r\n</ol>\n</li>\r\n<li>Chance
45
- (10/16 cards):\r\n<ol>\n<li>Advance to GO</li>\r\n<li>Go to JAIL</li>\r\n<li>Go
46
- to C1</li>\r\n<li>Go to E3</li>\r\n<li>Go to H2</li>\r\n<li>Go to R1</li>\r\n<li>Go
47
- to next R (railway company)</li>\r\n<li>Go to next R</li>\r\n<li>Go to next U (utility
48
- company)</li>\r\n<li>Go back 3 squares.</li>\r\n</ol>\n</li>\r\n</ul>\n<p>The heart
49
- of this problem concerns the likelihood of visiting a particular square. That is,
50
- the probability of finishing at that square after a roll. For this reason it should
51
- be clear that, with the exception of G2J for which the probability of finishing
52
- on it is zero, the CH squares will have the lowest probabilities, as 5/8 request
53
- a movement to another square, and it is the final square that the player finishes
54
- at on each roll that we are interested in. We shall make no distinction between
55
- \"Just Visiting\" and being sent to JAIL, and we shall also ignore the rule about
56
- requiring a double to \"get out of jail\", assuming that they pay to get out on
57
- their next turn.</p>\r\n<p>By starting at GO and numbering the squares sequentially
58
- from 00 to 39 we can concatenate these two-digit numbers to produce strings that
59
- correspond with sets of squares.</p>\r\n<p>Statistically it can be shown that the
60
- three most popular squares, in order, are JAIL (6.24%) = Square 10, E3 (3.18%) =
61
- Square 24, and GO (3.09%) = Square 00. So these three most popular squares can be
62
- listed with the six-digit modal string: 102400.</p>\r\n<p>If, instead of using two
63
- 6-sided dice, two 4-sided dice are used, find the six-digit modal string.</p>\r\n\r\n"
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"
data/data/problems/85.yml CHANGED
@@ -2,8 +2,10 @@
2
2
  :id: 85
3
3
  :name: Counting rectangles
4
4
  :url: http://projecteuler.net/problem=85
5
- :content: "\r\n<p>By counting carefully it can be seen that a rectangular grid measuring
6
- 3 by 2 contains eighteen rectangles:</p>\r\n<div style=\"text-align:center;\">\r\n<img
7
- src=\"project/images/p_085.gif\" alt=\"\">\n</div>\r\n<p>Although there exists no
8
- rectangular grid that contains exactly two million rectangles, find the area of
9
- the grid with the nearest solution.</p>\r\n\r\n"
5
+ :content: |+
6
+ By counting carefully it can be seen that a rectangular grid measuring 3 by 2 contains eighteen rectangles:
7
+
8
+ ![](/home/will/src/euler-manager/config/../data/images/p_085.gif)
9
+
10
+ Although there exists no rectangular grid that contains exactly two million rectangles, find the area of the grid with the nearest solution.
11
+
data/data/problems/86.yml CHANGED
@@ -2,14 +2,14 @@
2
2
  :id: 86
3
3
  :name: Cuboid route
4
4
  :url: http://projecteuler.net/problem=86
5
- :content: "\r\n<p>A spider, S, sits in one corner of a cuboid room, measuring 6 by
6
- 5 by 3, and a fly, F, sits in the opposite corner. By travelling on the surfaces
7
- of the room the shortest \"straight line\" distance from S to F is 10 and the path
8
- is shown on the diagram.</p>\r\n<div style=\"text-align:center;\">\r\n<img src=\"project/images/p_086.gif\"
9
- alt=\"\"><br>\n</div>\r\n<p>However, there are up to three \"shortest\" path candidates
10
- for any given cuboid and the shortest route doesn't always have integer length.</p>\r\n<p>By
11
- considering all cuboid rooms with integer dimensions, up to a maximum size of M
12
- by M by M, there are exactly 2060 cuboids for which the shortest route has integer
13
- length when M=100, and this is the least value of M for which the number of solutions
14
- first exceeds two thousand; the number of solutions is 1975 when M=99.</p>\r\n<p>Find
15
- the least value of M such that the number of solutions first exceeds one million.</p>\r\n\r\n"
5
+ :content: "A spider, S, sits in one corner of a cuboid room, measuring 6 by 5 by 3,
6
+ and a fly, F, sits in the opposite corner. By travelling on the surfaces of the
7
+ room the shortest \"straight line\" distance from S to F is 10 and the path is shown
8
+ on the diagram.\n\n ![](/home/will/src/euler-manager/config/../data/images/p_086.gif)
9
+ \ \n\nHowever, there are up to three \"shortest\" path candidates for any given
10
+ cuboid and the shortest route doesn't always have integer length.\n\nBy considering
11
+ all cuboid rooms with integer dimensions, up to a maximum size of M by M by M, there
12
+ are exactly 2060 cuboids for which the shortest route has integer length when M=100,
13
+ and this is the least value of M for which the number of solutions first exceeds
14
+ two thousand; the number of solutions is 1975 when M=99.\n\nFind the least value
15
+ of M such that the number of solutions first exceeds one million.\n\n"
data/data/problems/87.yml CHANGED
@@ -2,11 +2,10 @@
2
2
  :id: 87
3
3
  :name: Prime power triples
4
4
  :url: http://projecteuler.net/problem=87
5
- :content: "\r\n\n<p>The smallest number expressible as the sum of a prime square,
6
- prime cube, and prime fourth power is 28. In fact, there are exactly four numbers
7
- below fifty that can be expressed in such a way:</p>\n<p style=\"margin-left:50px;\">28
8
- = 2<sup>2</sup> + 2<sup>3</sup> + 2<sup>4</sup><br>\n33 = 3<sup>2</sup> + 2<sup>3</sup>
9
- + 2<sup>4</sup><br>\n49 = 5<sup>2</sup> + 2<sup>3</sup> + 2<sup>4</sup><br>\n47
10
- = 2<sup>2</sup> + 3<sup>3</sup> + 2<sup>4</sup></p>\n<p>How many numbers below fifty
11
- million can be expressed as the sum of a prime square, prime cube, and prime fourth
12
- power?</p>\n\r\n"
5
+ :content: "The smallest number expressible as the sum of a prime square, prime cube,
6
+ and prime fourth power is 28. In fact, there are exactly four numbers below fifty
7
+ that can be expressed in such a way:\n\n28 = 2<sup>2</sup> + 2<sup>3</sup> + 2<sup>4</sup>
8
+ \ \n33 = 3<sup>2</sup> + 2<sup>3</sup> + 2<sup>4</sup> \n49 = 5<sup>2</sup> + 2<sup>3</sup>
9
+ + 2<sup>4</sup> \n47 = 2<sup>2</sup> + 3<sup>3</sup> + 2<sup>4</sup>\n\nHow many
10
+ numbers below fifty million can be expressed as the sum of a prime square, prime
11
+ cube, and prime fourth power?\n\n"