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/10.yml CHANGED
@@ -2,7 +2,6 @@
2
2
  :id: 10
3
3
  :name: Summation of primes
4
4
  :url: http://projecteuler.net/problem=10
5
- :content: "\r\n<p>The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.</p>\r\n<p>Find
6
- the sum of all the primes below two million.</p>\r\n<!--\r\n<p class=\"note\">Note:
7
- This problem has been changed recently, please check that you are using the right
8
- parameters.</p>\r\n-->\r\n\r\n\r\n"
5
+ :content: "The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.\n\nFind the sum of
6
+ all the primes below two million.\n\n<!--\r\n<p class=\"note\">Note: This problem
7
+ has been changed recently, please check that you are using the right parameters.</p>\r\n-->\n"
@@ -2,12 +2,10 @@
2
2
  :id: 100
3
3
  :name: Arranged probability
4
4
  :url: http://projecteuler.net/problem=100
5
- :content: "\r\n\n<p>If a box contains twenty-one coloured discs, composed of fifteen
6
- blue discs and six red discs, and two discs were taken at random, it can be seen
7
- that the probability of taking two blue discs, P(BB) = (15/21)<img src=\"images/symbol_times.gif\"
8
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\">(14/20)
9
- = 1/2.</p>\n<p>The next such arrangement, for which there is exactly 50% chance
10
- of taking two blue discs at random, is a box containing eighty-five blue discs and
11
- thirty-five red discs.</p>\n<p>By finding the first arrangement to contain over
12
- 10<sup>12</sup> = 1,000,000,000,000 discs in total, determine the number of blue
13
- discs that the box would contain.</p>\n\r\n"
5
+ :content: |+
6
+ If a box contains twenty-one coloured discs, composed of fifteen blue discs and six red discs, and two discs were taken at random, it can be seen that the probability of taking two blue discs, P(BB) = (15/21) ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif)(14/20) = 1/2.
7
+
8
+ The next such arrangement, for which there is exactly 50% chance of taking two blue discs at random, is a box containing eighty-five blue discs and thirty-five red discs.
9
+
10
+ By finding the first arrangement to contain over 10<sup>12</sup> = 1,000,000,000,000 discs in total, determine the number of blue discs that the box would contain.
11
+
@@ -2,48 +2,35 @@
2
2
  :id: 101
3
3
  :name: Optimum polynomial
4
4
  :url: http://projecteuler.net/problem=101
5
- :content: "\r\n<p>If we are presented with the first <var>k</var> terms of a sequence
6
- it is impossible to say with certainty the value of the next term, as there are
7
- infinitely many polynomial functions that can model the sequence.</p>\r\n<p>As an
8
- example, let us consider the sequence of cube numbers. This is defined by the generating
9
- function, <br><var>u</var><sub><var>n</var></sub> = <var>n</var><sup>3</sup>: 1,
10
- 8, 27, 64, 125, 216, ...</p>\r\n<p>Suppose we were only given the first two terms
11
- of this sequence. Working on the principle that \"simple is best\" we should assume
12
- a linear relationship and predict the next term to be 15 (common difference 7).
13
- Even if we were presented with the first three terms, by the same principle of simplicity,
14
- a quadratic relationship should be assumed.</p>\r\n<p>We shall define OP(<var>k</var>,
15
- <var>n</var>) to be the <var>n</var><sup>th</sup> term of the optimum polynomial
16
- generating function for the first <var>k</var> terms of a sequence. It should be
17
- clear that OP(<var>k</var>, <var>n</var>) will accurately generate the terms of
18
- the sequence for <var>n</var> <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\"
19
- alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>k</var>, and potentially
20
- the <i>first incorrect term</i> (FIT) will be OP(<var>k</var>, <var>k</var>+1);
21
- in which case we shall call it a <i>bad OP</i> (BOP).</p>\r\n<p>As a basis, if we
22
- were only given the first term of sequence, it would be most sensible to assume
23
- constancy; that is, for <var>n</var> <img src=\"images/symbol_ge.gif\" width=\"10\"
24
- height=\"12\" alt=\"≥\" border=\"0\" style=\"vertical-align:middle;\"> 2, OP(1,
25
- <var>n</var>) = <var>u</var><sub>1</sub>.</p>\r\n<p>Hence we obtain the following
26
- OPs for the cubic sequence:</p>\r\n<div style=\"margin-left:50px;\">\r\n<table>\n<tr>\n<td>OP(1,
27
- <var>n</var>) = 1</td>\r\n<td>1, <span style=\"color:red;\"><b>1</b></span>, 1,
28
- 1, ...</td>\r\n</tr>\n<tr>\n<td>OP(2, <var>n</var>) = 7<var>n</var><img src=\"images/symbol_minus.gif\"
29
- width=\"9\" height=\"3\" alt=\"−\" border=\"0\" style=\"vertical-align:middle;\">6</td>\r\n<td>1,
30
- 8, <span style=\"color:red;\"><b>15</b></span>, ...</td>\r\n</tr>\n<tr>\n<td>OP(3,
31
- <var>n</var>) = 6<var>n</var><sup>2</sup><img src=\"images/symbol_minus.gif\" width=\"9\"
32
- height=\"3\" alt=\"−\" border=\"0\" style=\"vertical-align:middle;\">11<var>n</var>+6     </td>\r\n<td>1,
33
- 8, 27, <span style=\"color:red;\"><b>58</b></span>, ...</td>\r\n</tr>\n<tr>\n<td>OP(4,
34
- <var>n</var>) = <var>n</var><sup>3</sup>\n</td>\r\n<td>1, 8, 27, 64, 125, ...</td>\r\n</tr>\n</table>\n</div>\r\n<p>Clearly
35
- no BOPs exist for <var>k</var> <img src=\"images/symbol_ge.gif\" width=\"10\" height=\"12\"
36
- alt=\"≥\" border=\"0\" style=\"vertical-align:middle;\"> 4.</p>\r\n<p>By considering
37
- the sum of FITs generated by the BOPs (indicated in <span style=\"color:red;\"><b>red</b></span>
38
- above), we obtain 1 + 15 + 58 = 74.</p>\r\n<p>Consider the following tenth degree
39
- polynomial generating function:</p>\r\n<p style=\"text-align:center;\"><var>u</var><sub><var>n</var></sub>
40
- = 1 <img src=\"images/symbol_minus.gif\" width=\"9\" height=\"3\" alt=\"−\" border=\"0\"
41
- style=\"vertical-align:middle;\"><var>n</var> + <var>n</var><sup>2</sup><img src=\"images/symbol_minus.gif\"
42
- width=\"9\" height=\"3\" alt=\"−\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var><sup>3</sup>
43
- + <var>n</var><sup>4</sup><img src=\"images/symbol_minus.gif\" width=\"9\" height=\"3\"
44
- alt=\"−\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var><sup>5</sup>
45
- + <var>n</var><sup>6</sup><img src=\"images/symbol_minus.gif\" width=\"9\" height=\"3\"
46
- alt=\"−\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var><sup>7</sup>
47
- + <var>n</var><sup>8</sup><img src=\"images/symbol_minus.gif\" width=\"9\" height=\"3\"
48
- alt=\"−\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var><sup>9</sup>
49
- + <var>n</var><sup>10</sup></p>\r\n<p>Find the sum of FITs for the BOPs.</p>\r\n\r\n"
5
+ :content: "If we are presented with the first <var>k</var> terms of a sequence it
6
+ is impossible to say with certainty the value of the next term, as there are infinitely
7
+ many polynomial functions that can model the sequence.\n\nAs an example, let us
8
+ consider the sequence of cube numbers. This is defined by the generating function,
9
+ \ \n<var>u</var><sub><var>n</var></sub> = <var>n</var><sup>3</sup>: 1, 8, 27, 64,
10
+ 125, 216, ...\n\nSuppose we were only given the first two terms of this sequence.
11
+ Working on the principle that \"simple is best\" we should assume a linear relationship
12
+ and predict the next term to be 15 (common difference 7). Even if we were presented
13
+ with the first three terms, by the same principle of simplicity, a quadratic relationship
14
+ should be assumed.\n\nWe shall define OP(<var>k</var>, <var>n</var>) to be the <var>n</var><sup>th</sup>
15
+ term of the optimum polynomial generating function for the first <var>k</var> terms
16
+ of a sequence. It should be clear that OP(<var>k</var>, <var>n</var>) will accurately
17
+ generate the terms of the sequence for <var>n</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
18
+ <var>k</var>, and potentially the _first incorrect term_ (FIT) will be OP(<var>k</var>,
19
+ <var>k</var>+1); in which case we shall call it a _bad OP_ (BOP).\n\nAs a basis,
20
+ if we were only given the first term of sequence, it would be most sensible to assume
21
+ constancy; that is, for <var>n</var> ![≥](/home/will/src/euler-manager/config/../data/images/symbol_ge.gif)
22
+ 2, OP(1, <var>n</var>) = <var>u</var><sub>1</sub>.\n\nHence we obtain the following
23
+ OPs for the cubic sequence:\n\n| OP(1, <var>n</var>) = 1 | 1, **1** , 1, 1, ...
24
+ |\n| OP(2, <var>n</var>) = 7<var>n</var> ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)6
25
+ | 1, 8, **15** , ... |\n| OP(3, <var>n</var>) = 6<var>n</var><sup>2</sup> ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)11<var>n</var>+6     
26
+ | 1, 8, 27, **58** , ... |\n| OP(4, <var>n</var>) = <var>n</var><sup>3</sup> | 1,
27
+ 8, 27, 64, 125, ... |\n\nClearly no BOPs exist for <var>k</var> ![≥](/home/will/src/euler-manager/config/../data/images/symbol_ge.gif)
28
+ 4.\n\nBy considering the sum of FITs generated by the BOPs (indicated in **red**
29
+ above), we obtain 1 + 15 + 58 = 74.\n\nConsider the following tenth degree polynomial
30
+ generating function:\n\n<var>u</var><sub><var>n</var></sub> = 1 ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)
31
+ <var>n</var> + <var>n</var><sup>2</sup> ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)
32
+ <var>n</var><sup>3</sup> + <var>n</var><sup>4</sup> ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)
33
+ <var>n</var><sup>5</sup> + <var>n</var><sup>6</sup> ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)
34
+ <var>n</var><sup>7</sup> + <var>n</var><sup>8</sup> ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)
35
+ <var>n</var><sup>9</sup> + <var>n</var><sup>10</sup>\n\nFind the sum of FITs for
36
+ the BOPs.\n\n"
@@ -2,15 +2,14 @@
2
2
  :id: 102
3
3
  :name: Triangle containment
4
4
  :url: http://projecteuler.net/problem=102
5
- :content: "\r\n\n<p>Three distinct points are plotted at random on a Cartesian plane,
6
- for which -1000 <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\"
7
- border=\"0\" style=\"vertical-align:middle;\"><i>x</i>, <i>y</i> <img src=\"images/symbol_le.gif\"
8
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">
9
- 1000, such that a triangle is formed.</p>\n<p>Consider the following two triangles:</p>\n<p
10
- style=\"text-align:center;\">A(-340,495), B(-153,-910), C(835,-947)<br><br>\nX(-175,41),
11
- Y(-421,-714), Z(574,-645)</p>\n<p>It can be verified that triangle ABC contains
12
- the origin, whereas triangle XYZ does not.</p>\n<p>Using <a href=\"project/triangles.txt\">triangles.txt</a>
13
- (right click and 'Save Link/Target As...'), a 27K text file containing the co-ordinates
14
- of one thousand \"random\" triangles, find the number of triangles for which the
15
- interior contains the origin.</p>\n<p class=\"info\">NOTE: The first two examples
16
- in the file represent the triangles in the example given above.</p>\n\r\n"
5
+ :content: "Three distinct points are plotted at random on a Cartesian plane, for which
6
+ -1000 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) _x_,
7
+ _y_ ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) 1000,
8
+ such that a triangle is formed.\n\nConsider the following two triangles:\n\nA(-340,495),
9
+ B(-153,-910), C(835,-947) \n \n \nX(-175,41), Y(-421,-714), Z(574,-645)\n\nIt
10
+ can be verified that triangle ABC contains the origin, whereas triangle XYZ does
11
+ not.\n\nUsing [triangles.txt](project/triangles.txt) (right click and 'Save Link/Target
12
+ As...'), a 27K text file containing the co-ordinates of one thousand \"random\"
13
+ triangles, find the number of triangles for which the interior contains the origin.\n\nNOTE:
14
+ The first two examples in the file represent the triangles in the example given
15
+ above.\n\n"
@@ -2,25 +2,21 @@
2
2
  :id: 103
3
3
  :name: 'Special subset sums: optimum'
4
4
  :url: http://projecteuler.net/problem=103
5
- :content: "\r\n<p>Let S(A) represent the sum of elements in set A of size <i>n</i>.
6
- We shall call it a special sum set if for any two non-empty disjoint subsets, B
7
- and C, the following properties are true:</p>\r\n<ol style=\"list-style-type:lower-roman;\">\n<li>S(B)
8
- <img src=\"images/symbol_ne.gif\" width=\"11\" height=\"10\" alt=\"≠\" border=\"0\"
9
- style=\"vertical-align:middle;\"> S(C); that is, sums of subsets cannot be equal.</li>\r\n<li>If
10
- B contains more elements than C then S(B) <img src=\"images/symbol_gt.gif\" width=\"10\"
11
- height=\"10\" alt=\"&gt;\" border=\"0\" style=\"vertical-align:middle;\"> S(C).</li>\r\n</ol>\n<p>If
12
- S(A) is minimised for a given <i>n</i>, we shall call it an optimum special sum
13
- set. The first five optimum special sum sets are given below.</p>\r\n<p style=\"margin-left:50px;\"><i>n</i>
14
- = 1: {1}<br><i>n</i> = 2: {1, 2}<br><i>n</i> = 3: {2, 3, 4}<br><i>n</i> = 4: {3,
15
- 5, 6, 7}<br><i>n</i> = 5: {6, 9, 11, 12, 13}</p>\r\n<p>It <i>seems</i> that for
16
- a given optimum set, A = {<i>a</i><sub>1</sub>, <i>a</i><sub>2</sub>, ... , <i>a</i><sub>n</sub>},
17
- the next optimum set is of the form B = {<i>b</i>, <i>a</i><sub>1</sub>+<i>b</i>,
18
- <i>a</i><sub>2</sub>+<i>b</i>, ... ,<i>a</i><sub>n</sub>+<i>b</i>}, where <i>b</i>
19
- is the \"middle\" element on the previous row.</p>\r\n<p>By applying this \"rule\"
20
- we would expect the optimum set for <i>n</i> = 6 to be A = {11, 17, 20, 22, 23,
21
- 24}, with S(A) = 117. However, this is not the optimum set, as we have merely applied
22
- an algorithm to provide a near optimum set. The optimum set for <i>n</i> = 6 is
23
- A = {11, 18, 19, 20, 22, 25}, with S(A) = 115 and corresponding set string: 111819202225.</p>\r\n<p>Given
24
- that A is an optimum special sum set for <i>n</i> = 7, find its set string.</p>\r\n<p
25
- class=\"note\">NOTE: This problem is related to <a href=\"problem=105\">Problem
26
- 105</a> and <a href=\"problem=106\">Problem 106</a>.</p>\r\n"
5
+ :content: "Let S(A) represent the sum of elements in set A of size _n_. We shall call
6
+ it a special sum set if for any two non-empty disjoint subsets, B and C, the following
7
+ properties are true:\n\n1. S(B) ![≠](/home/will/src/euler-manager/config/../data/images/symbol_ne.gif)
8
+ S(C); that is, sums of subsets cannot be equal.\n2. If B contains more elements
9
+ than C then S(B) ![>](/home/will/src/euler-manager/config/../data/images/symbol_gt.gif)
10
+ S(C).\n\nIf S(A) is minimised for a given _n_, we shall call it an optimum special
11
+ sum set. The first five optimum special sum sets are given below.\n\n_n_ = 1: {1}
12
+ \ \n_n_ = 2: {1, 2} \n_n_ = 3: {2, 3, 4} \n_n_ = 4: {3, 5, 6, 7} \n_n_ = 5: {6,
13
+ 9, 11, 12, 13}\n\nIt _seems_ that for a given optimum set, A = {_a_<sub>1</sub>,
14
+ _a_<sub>2</sub>, ... , _a_<sub>n</sub>}, the next optimum set is of the form B =
15
+ {_b_, _a_<sub>1</sub>+_b_, _a_<sub>2</sub>+_b_, ... ,_a_<sub>n</sub>+_b_}, where
16
+ _b_ is the \"middle\" element on the previous row.\n\nBy applying this \"rule\"
17
+ we would expect the optimum set for _n_ = 6 to be A = {11, 17, 20, 22, 23, 24},
18
+ with S(A) = 117. However, this is not the optimum set, as we have merely applied
19
+ an algorithm to provide a near optimum set. The optimum set for _n_ = 6 is A = {11,
20
+ 18, 19, 20, 22, 25}, with S(A) = 115 and corresponding set string: 111819202225.\n\nGiven
21
+ that A is an optimum special sum set for _n_ = 7, find its set string.\n\nNOTE:
22
+ This problem is related to [Problem 105](problem=105) and [Problem 106](problem=106).\n\n"
@@ -2,14 +2,12 @@
2
2
  :id: 104
3
3
  :name: Pandigital Fibonacci ends
4
4
  :url: http://projecteuler.net/problem=104
5
- :content: "\r\n\n<p>The Fibonacci sequence is defined by the recurrence relation:</p>\n<blockquote>F<sub><i>n</i></sub>
6
- = F<sub><i>n</i><img src=\"images/symbol_minus.gif\" width=\"9\" height=\"3\" alt=\"−\"
7
- border=\"0\" style=\"vertical-align:middle;\">1</sub> + F<sub><i>n</i><img src=\"images/symbol_minus.gif\"
8
- width=\"9\" height=\"3\" alt=\"−\" border=\"0\" style=\"vertical-align:middle;\">2</sub>,
9
- where F<sub>1</sub> = 1 and F<sub>2</sub> = 1.</blockquote>\n<p>It turns out that
10
- F<sub>541</sub>, which contains 113 digits, is the first Fibonacci number for which
11
- the last nine digits are 1-9 pandigital (contain all the digits 1 to 9, but not
12
- necessarily in order). And F<sub>2749</sub>, which contains 575 digits, is the first
13
- Fibonacci number for which the first nine digits are 1-9 pandigital.</p>\n<p>Given
14
- that F<sub><i>k</i></sub> is the first Fibonacci number for which the first nine
15
- digits AND the last nine digits are 1-9 pandigital, find <i>k</i>.</p>\n\r\n"
5
+ :content: |+
6
+ The Fibonacci sequence is defined by the recurrence relation:
7
+
8
+ > F<sub><i>n</i></sub> = F<sub><i>n</i><img src="%7B%7B%20images_dir%20%7D%7D/symbol_minus.gif" width="9" height="3" alt="" border="0" style="vertical-align:middle;">1</sub> + F<sub><i>n</i><img src="%7B%7B%20images_dir%20%7D%7D/symbol_minus.gif" width="9" height="3" alt="−" border="0" style="vertical-align:middle;">2</sub>, where F<sub>1</sub> = 1 and F<sub>2</sub> = 1.
9
+
10
+ It turns out that F<sub>541</sub>, which contains 113 digits, is the first Fibonacci number for which the last nine digits are 1-9 pandigital (contain all the digits 1 to 9, but not necessarily in order). And F<sub>2749</sub>, which contains 575 digits, is the first Fibonacci number for which the first nine digits are 1-9 pandigital.
11
+
12
+ Given that F<sub><i>k</i></sub> is the first Fibonacci number for which the first nine digits AND the last nine digits are 1-9 pandigital, find _k_.
13
+
@@ -2,20 +2,15 @@
2
2
  :id: 105
3
3
  :name: 'Special subset sums: testing'
4
4
  :url: http://projecteuler.net/problem=105
5
- :content: "\r\n<p>Let S(A) represent the sum of elements in set A of size <i>n</i>.
6
- We shall call it a special sum set if for any two non-empty disjoint subsets, B
7
- and C, the following properties are true:</p>\r\n<ol style=\"list-style-type:lower-roman;\">\n<li>S(B)
8
- <img src=\"images/symbol_ne.gif\" width=\"11\" height=\"10\" alt=\"≠\" border=\"0\"
9
- style=\"vertical-align:middle;\"> S(C); that is, sums of subsets cannot be equal.</li>\r\n<li>If
10
- B contains more elements than C then S(B) <img src=\"images/symbol_gt.gif\" width=\"10\"
11
- height=\"10\" alt=\"&gt;\" border=\"0\" style=\"vertical-align:middle;\"> S(C).</li>\r\n</ol>\n<p>For
12
- example, {81, 88, 75, 42, 87, 84, 86, 65} is not a special sum set because 65 +
13
- 87 + 88 = 75 + 81 + 84, whereas {157, 150, 164, 119, 79, 159, 161, 139, 158} satisfies
14
- both rules for all possible subset pair combinations and S(A) = 1286.</p>\r\n<p>Using
15
- <a href=\"project/sets.txt\">sets.txt</a> (right click and \"Save Link/Target As...\"),
16
- a 4K text file with one-hundred sets containing seven to twelve elements (the two
17
- examples given above are the first two sets in the file), identify all the special
18
- sum sets, A<sub>1</sub>, A<sub>2</sub>, ..., A<sub><i>k</i></sub>, and find the
19
- value of S(A<sub>1</sub>) + S(A<sub>2</sub>) + ... + S(A<sub><i>k</i></sub>).</p>\r\n<p
20
- class=\"note\">NOTE: This problem is related to <a href=\"problem=103\">Problem
21
- 103</a> and <a href=\"problem=106\">Problem 106</a>.</p>\r\n"
5
+ :content: |+
6
+ Let S(A) represent the sum of elements in set A of size _n_. We shall call it a special sum set if for any two non-empty disjoint subsets, B and C, the following properties are true:
7
+
8
+ 1. S(B) ![≠](/home/will/src/euler-manager/config/../data/images/symbol_ne.gif) S(C); that is, sums of subsets cannot be equal.
9
+ 2. If B contains more elements than C then S(B) ![>](/home/will/src/euler-manager/config/../data/images/symbol_gt.gif) S(C).
10
+
11
+ For example, {81, 88, 75, 42, 87, 84, 86, 65} is not a special sum set because 65 + 87 + 88 = 75 + 81 + 84, whereas {157, 150, 164, 119, 79, 159, 161, 139, 158} satisfies both rules for all possible subset pair combinations and S(A) = 1286.
12
+
13
+ Using [sets.txt](project/sets.txt) (right click and "Save Link/Target As..."), a 4K text file with one-hundred sets containing seven to twelve elements (the two examples given above are the first two sets in the file), identify all the special sum sets, A<sub>1</sub>, A<sub>2</sub>, ..., A<sub><i>k</i></sub>, and find the value of S(A<sub>1</sub>) + S(A<sub>2</sub>) + ... + S(A<sub><i>k</i></sub>).
14
+
15
+ NOTE: This problem is related to [Problem 103](problem=103) and [Problem 106](problem=106).
16
+
@@ -2,18 +2,17 @@
2
2
  :id: 106
3
3
  :name: 'Special subset sums: meta-testing'
4
4
  :url: http://projecteuler.net/problem=106
5
- :content: "\r\n<p>Let S(A) represent the sum of elements in set A of size <i>n</i>.
6
- We shall call it a special sum set if for any two non-empty disjoint subsets, B
7
- and C, the following properties are true:</p>\r\n<ol style=\"list-style-type:lower-roman;\">\n<li>S(B)
8
- <img src=\"images/symbol_ne.gif\" width=\"11\" height=\"10\" alt=\"≠\" border=\"0\"
9
- style=\"vertical-align:middle;\"> S(C); that is, sums of subsets cannot be equal.</li>\r\n<li>If
10
- B contains more elements than C then S(B) <img src=\"images/symbol_gt.gif\" width=\"10\"
11
- height=\"10\" alt=\"&gt;\" border=\"0\" style=\"vertical-align:middle;\"> S(C).</li>\r\n</ol>\n<p>For
12
- this problem we shall assume that a given set contains <i>n</i> strictly increasing
13
- elements and it already satisfies the second rule.</p>\r\n<p>Surprisingly, out of
14
- the 25 possible subset pairs that can be obtained from a set for which <i>n</i>
15
- = 4, only 1 of these pairs need to be tested for equality (first rule). Similarly,
16
- when <i>n</i> = 7, only 70 out of the 966 subset pairs need to be tested.</p>\r\n<p>For
17
- <i>n</i> = 12, how many of the 261625 subset pairs that can be obtained need to
18
- be tested for equality?</p>\r\n<p class=\"note\">NOTE: This problem is related to
19
- <a href=\"problem=103\">Problem 103</a> and <a href=\"problem=105\">Problem 105</a>.</p>\r\n"
5
+ :content: |+
6
+ Let S(A) represent the sum of elements in set A of size _n_. We shall call it a special sum set if for any two non-empty disjoint subsets, B and C, the following properties are true:
7
+
8
+ 1. S(B) ![≠](/home/will/src/euler-manager/config/../data/images/symbol_ne.gif) S(C); that is, sums of subsets cannot be equal.
9
+ 2. If B contains more elements than C then S(B) ![>](/home/will/src/euler-manager/config/../data/images/symbol_gt.gif) S(C).
10
+
11
+ For this problem we shall assume that a given set contains _n_ strictly increasing elements and it already satisfies the second rule.
12
+
13
+ Surprisingly, out of the 25 possible subset pairs that can be obtained from a set for which _n_ = 4, only 1 of these pairs need to be tested for equality (first rule). Similarly, when _n_ = 7, only 70 out of the 966 subset pairs need to be tested.
14
+
15
+ For _n_ = 12, how many of the 261625 subset pairs that can be obtained need to be tested for equality?
16
+
17
+ NOTE: This problem is related to [Problem 103](problem=103) and [Problem 105](problem=105).
18
+
@@ -2,19 +2,19 @@
2
2
  :id: 107
3
3
  :name: Minimal network
4
4
  :url: http://projecteuler.net/problem=107
5
- :content: "\r\n\n<p>The following undirected network consists of seven vertices and
6
- twelve edges with a total weight of 243.</p>\n<div style=\"text-align:center;\">\n<img
7
- src=\"project/images/p_107_1.gif\" width=\"381\" height=\"278\" alt=\"\"><br>\n</div>\n<p>The
8
- same network can be represented by the matrix below.</p>\n<table cellpadding=\"5\"
9
- cellspacing=\"0\" border=\"1\" align=\"center\">\n<tr>\n<td>    </td>\n<td><b>A</b></td>\n<td><b>B</b></td>\n<td><b>C</b></td>\n<td><b>D</b></td>\n<td><b>E</b></td>\n<td><b>F</b></td>\n<td><b>G</b></td>\n</tr>\n<tr>\n<td><b>A</b></td>\n<td>-</td>\n<td>16</td>\n<td>12</td>\n<td>21</td>\n<td>-</td>\n<td>-</td>\n<td>-</td>\n</tr>\n<tr>\n<td><b>B</b></td>\n<td>16</td>\n<td>-</td>\n<td>-</td>\n<td>17</td>\n<td>20</td>\n<td>-</td>\n<td>-</td>\n</tr>\n<tr>\n<td><b>C</b></td>\n<td>12</td>\n<td>-</td>\n<td>-</td>\n<td>28</td>\n<td>-</td>\n<td>31</td>\n<td>-</td>\n</tr>\n<tr>\n<td><b>D</b></td>\n<td>21</td>\n<td>17</td>\n<td>28</td>\n<td>-</td>\n<td>18</td>\n<td>19</td>\n<td>23</td>\n</tr>\n<tr>\n<td><b>E</b></td>\n<td>-</td>\n<td>20</td>\n<td>-</td>\n<td>18</td>\n<td>-</td>\n<td>-</td>\n<td>11</td>\n</tr>\n<tr>\n<td><b>F</b></td>\n<td>-</td>\n<td>-</td>\n<td>31</td>\n<td>19</td>\n<td>-</td>\n<td>-</td>\n<td>27</td>\n</tr>\n<tr>\n<td><b>G</b></td>\n<td>-</td>\n<td>-</td>\n<td>-</td>\n<td>23</td>\n<td>11</td>\n<td>27</td>\n<td>-</td>\n</tr>\n</table>\n<p>However,
10
- it is possible to optimise the network by removing some edges and still ensure that
11
- all points on the network remain connected. The network which achieves the maximum
12
- saving is shown below. It has a weight of 93, representing a saving of 243 <img
13
- src=\"images/symbol_minus.gif\" width=\"9\" height=\"3\" alt=\"−\" border=\"0\"
14
- style=\"vertical-align:middle;\"> 93 = 150 from the original network.</p>\n<div
15
- style=\"text-align:center;\">\n<img src=\"project/images/p_107_2.gif\" width=\"385\"
16
- height=\"288\" alt=\"\"><br>\n</div>\n<p>Using <a href=\"project/network.txt\">network.txt</a>
17
- (right click and 'Save Link/Target As...'), a 6K text file containing a network
18
- with forty vertices, and given in matrix form, find the maximum saving which can
19
- be achieved by removing redundant edges whilst ensuring that the network remains
20
- connected.</p>\n\r\n"
5
+ :content: "The following undirected network consists of seven vertices and twelve
6
+ edges with a total weight of 243.\n\n ![](/home/will/src/euler-manager/config/../data/images/p_107_1.gif)
7
+ \ \n\nThe same network can be represented by the matrix below.\n\n|      | **A**
8
+ | **B** | **C** | **D** | **E** | **F** | **G** |\n| **A** | - | 16 | 12 | 21 |
9
+ - | - | - |\n| **B** | 16 | - | - | 17 | 20 | - | - |\n| **C** | 12 | - | - | 28
10
+ | - | 31 | - |\n| **D** | 21 | 17 | 28 | - | 18 | 19 | 23 |\n| **E** | - | 20 |
11
+ - | 18 | - | - | 11 |\n| **F** | - | - | 31 | 19 | - | - | 27 |\n| **G** | - | -
12
+ | - | 23 | 11 | 27 | - |\n\nHowever, it is possible to optimise the network by removing
13
+ some edges and still ensure that all points on the network remain connected. The
14
+ network which achieves the maximum saving is shown below. It has a weight of 93,
15
+ representing a saving of 243 ![−](/home/will/src/euler-manager/config/../data/images/symbol_minus.gif)
16
+ 93 = 150 from the original network.\n\n ![](/home/will/src/euler-manager/config/../data/images/p_107_2.gif)
17
+ \ \n\nUsing [network.txt](project/network.txt) (right click and 'Save Link/Target
18
+ As...'), a 6K text file containing a network with forty vertices, and given in matrix
19
+ form, find the maximum saving which can be achieved by removing redundant edges
20
+ whilst ensuring that the network remains connected.\n\n"
@@ -2,31 +2,20 @@
2
2
  :id: 108
3
3
  :name: Diophantine reciprocals I
4
4
  :url: http://projecteuler.net/problem=108
5
- :content: "\r\n<p>In the following equation <var>x</var>, <var>y</var>, and <var>n</var>
6
- are positive integers.</p>\r\n<div style=\"text-align:center;\">\r\n<table align=\"center\"><tr>\n<td><div
7
- style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\" width=\"15\"
8
- height=\"1\" alt=\"\"><br><var>x</var>\n</div></td>\r\n<td> + </td>\r\n<td><div
9
- style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\" width=\"15\"
10
- height=\"1\" alt=\"\"><br><var>y</var>\n</div></td>\r\n<td> = </td>\r\n<td><div
11
- style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\" width=\"15\"
12
- height=\"1\" alt=\"\"><br><var>n</var>\n</div></td>\r\n</tr></table>\n</div>\r\n<p>For
13
- <var>n</var> = 4 there are exactly three distinct solutions:</p>\r\n<div style=\"text-align:center;\">\r\n<table
14
- align=\"center\">\n<tr>\n<td><div style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\"
15
- width=\"15\" height=\"1\" alt=\"\"><br> 5</div></td>\r\n<td> + </td>\r\n<td><div
16
- style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\" width=\"15\"
17
- height=\"1\" alt=\"\"><br> 20</div></td>\r\n<td> = </td>\r\n<td><div style=\"text-align:center;\">1<br><img
18
- src=\"images/blackdot.gif\" width=\"15\" height=\"1\" alt=\"\"><br> 4</div></td>\r\n</tr>\n<tr>\n<td><div
19
- style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\" width=\"15\"
20
- height=\"1\" alt=\"\"><br> 6</div></td>\r\n<td> + </td>\r\n<td><div style=\"text-align:center;\">1<br><img
21
- src=\"images/blackdot.gif\" width=\"15\" height=\"1\" alt=\"\"><br> 12</div></td>\r\n<td>
22
- = </td>\r\n<td><div style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\"
23
- width=\"15\" height=\"1\" alt=\"\"><br> 4</div></td>\r\n</tr>\n<tr>\n<td><div style=\"text-align:center;\">1<br><img
24
- src=\"images/blackdot.gif\" width=\"15\" height=\"1\" alt=\"\"><br> 8</div></td>\r\n<td>
25
- + </td>\r\n<td><div style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\"
26
- width=\"15\" height=\"1\" alt=\"\"><br> 8</div></td>\r\n<td> = </td>\r\n<td><div
27
- style=\"text-align:center;\">1<br><img src=\"images/blackdot.gif\" width=\"15\"
28
- height=\"1\" alt=\"\"><br> 4</div></td>\r\n</tr>\n</table>\n</div>\r\n<p>What is
29
- the least value of <var>n</var> for which the number of distinct solutions exceeds
30
- one-thousand?</p>\r\n<p class=\"note\">NOTE: This problem is an easier version of
31
- <a href=\"problem=110\">Problem 110</a>; it is strongly advised that you solve this
32
- one first.</p>\r\n"
5
+ :content: "In the following equation <var>x</var>, <var>y</var>, and <var>n</var>
6
+ are positive integers.\n\n| \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
7
+ \ \n <var>x</var>\n | + | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
8
+ \ \n <var>y</var>\n | = | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
9
+ \ \n <var>n</var>\n |\n\nFor <var>n</var> = 4 there are exactly three distinct solutions:\n\n|
10
+ \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif) \n
11
+ 5\n | + | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
12
+ \ \n 20\n | = | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
13
+ \ \n 4\n |\n| \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
14
+ \ \n 6\n | + | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
15
+ \ \n 12\n | = | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
16
+ \ \n 4\n |\n| \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
17
+ \ \n 8\n | + | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
18
+ \ \n 8\n | = | \n1 \n ![](/home/will/src/euler-manager/config/../data/images/blackdot.gif)
19
+ \ \n 4\n |\n\nWhat is the least value of <var>n</var> for which the number of distinct
20
+ solutions exceeds one-thousand?\n\nNOTE: This problem is an easier version of [Problem
21
+ 110](problem=110); it is strongly advised that you solve this one first.\n\n"
@@ -2,32 +2,30 @@
2
2
  :id: 109
3
3
  :name: Darts
4
4
  :url: http://projecteuler.net/problem=109
5
- :content: "\r\n<p>In the game of darts a player throws three darts at a target board
6
- which is split into twenty equal sized sections numbered one to twenty.</p>\r\n<div
7
- style=\"text-align:center;\">\r\n<img src=\"project/images/p_109.gif\" width=\"400\"
8
- height=\"400\" alt=\"\"><br>\n</div>\r\n<p>The score of a dart is determined by
9
- the number of the region that the dart lands in. A dart landing outside the red/green
10
- outer ring scores zero. The black and cream regions inside this ring represent single
11
- scores. However, the red/green outer ring and middle ring score double and treble
12
- scores respectively.</p>\r\n<p>At the centre of the board are two concentric circles
13
- called the bull region, or bulls-eye. The outer bull is worth 25 points and the
14
- inner bull is a double, worth 50 points.</p>\r\n<p>There are many variations of
15
- rules but in the most popular game the players will begin with a score 301 or 501
16
- and the first player to reduce their running total to zero is a winner. However,
17
- it is normal to play a \"doubles out\" system, which means that the player must
18
- land a double (including the double bulls-eye at the centre of the board) on their
19
- final dart to win; any other dart that would reduce their running total to one or
20
- lower means the score for that set of three darts is \"bust\".</p>\r\n<p>When a
21
- player is able to finish on their current score it is called a \"checkout\" and
22
- the highest checkout is 170: T20 T20 D25 (two treble 20s and double bull).</p>\r\n<p>There
23
- are exactly eleven distinct ways to checkout on a score of 6:</p>\r\n<div style=\"text-align:center;\">\r\n<table
24
- border=\"1\" cellpadding=\"3\" cellspacing=\"0\" align=\"center\">\n<tr>\n<td>\n<img
25
- src=\"images/spacer.gif\" width=\"80\" height=\"1\" alt=\"\"><br>D3</td>\r\n<td>\n<img
26
- src=\"images/spacer.gif\" width=\"80\" height=\"1\" alt=\"\"><br> </td>\r\n<td>\n<img
27
- src=\"images/spacer.gif\" width=\"80\" height=\"1\" alt=\"\"><br> </td>\r\n</tr>\n<tr>\n<td>D1</td>\r\n<td>D2</td>\r\n<td> </td>\r\n</tr>\n<tr>\n<td>S2</td>\r\n<td>D2</td>\r\n<td> </td>\r\n</tr>\n<tr>\n<td>D2</td>\r\n<td>D1</td>\r\n<td> </td>\r\n</tr>\n<tr>\n<td>S4</td>\r\n<td>D1</td>\r\n<td> </td>\r\n</tr>\n<tr>\n<td>S1</td>\r\n<td>S1</td>\r\n<td>D2</td>\r\n</tr>\n<tr>\n<td>S1</td>\r\n<td>T1</td>\r\n<td>D1</td>\r\n</tr>\n<tr>\n<td>S1</td>\r\n<td>S3</td>\r\n<td>D1</td>\r\n</tr>\n<tr>\n<td>D1</td>\r\n<td>D1</td>\r\n<td>D1</td>\r\n</tr>\n<tr>\n<td>D1</td>\r\n<td>S2</td>\r\n<td>D1</td>\r\n</tr>\n<tr>\n<td>S2</td>\r\n<td>S2</td>\r\n<td>D1</td>\r\n</tr>\n</table>\n</div>\r\n<p>Note
28
- that D1 D2 is considered <b>different</b> to D2 D1 as they finish on different doubles.
29
- However, the combination S1 T1 D1 is considered the <b>same</b> as T1 S1 D1.</p>\r\n<p>In
30
- addition we shall not include misses in considering combinations; for example, D3
31
- is the <b>same</b> as 0 D3 and 0 0 D3.</p>\r\n<p>Incredibly there are 42336 distinct
32
- ways of checking out in total.</p>\r\n<p>How many distinct ways can a player checkout
33
- with a score less than 100?</p>\r\n\r\n"
5
+ :content: "In the game of darts a player throws three darts at a target board which
6
+ is split into twenty equal sized sections numbered one to twenty.\n\n ![](/home/will/src/euler-manager/config/../data/images/p_109.gif)
7
+ \ \n\nThe score of a dart is determined by the number of the region that the dart
8
+ lands in. A dart landing outside the red/green outer ring scores zero. The black
9
+ and cream regions inside this ring represent single scores. However, the red/green
10
+ outer ring and middle ring score double and treble scores respectively.\n\nAt the
11
+ centre of the board are two concentric circles called the bull region, or bulls-eye.
12
+ The outer bull is worth 25 points and the inner bull is a double, worth 50 points.\n\nThere
13
+ are many variations of rules but in the most popular game the players will begin
14
+ with a score 301 or 501 and the first player to reduce their running total to zero
15
+ is a winner. However, it is normal to play a \"doubles out\" system, which means
16
+ that the player must land a double (including the double bulls-eye at the centre
17
+ of the board) on their final dart to win; any other dart that would reduce their
18
+ running total to one or lower means the score for that set of three darts is \"bust\".\n\nWhen
19
+ a player is able to finish on their current score it is called a \"checkout\" and
20
+ the highest checkout is 170: T20 T20 D25 (two treble 20s and double bull).\n\nThere
21
+ are exactly eleven distinct ways to checkout on a score of 6:\n\n| ![](/home/will/src/euler-manager/config/../data/images/spacer.gif)
22
+ \ \nD3 | ![](/home/will/src/euler-manager/config/../data/images/spacer.gif) \n 
23
+ | ![](/home/will/src/euler-manager/config/../data/images/spacer.gif) \n  |\n| D1
24
+ | D2 |   |\n| S2 | D2 |   |\n| D2 | D1 |   |\n| S4 | D1 |   |\n| S1 | S1 | D2 |\n|
25
+ S1 | T1 | D1 |\n| S1 | S3 | D1 |\n| D1 | D1 | D1 |\n| D1 | S2 | D1 |\n| S2 | S2
26
+ | D1 |\n\nNote that D1 D2 is considered **different** to D2 D1 as they finish on
27
+ different doubles. However, the combination S1 T1 D1 is considered the **same**
28
+ as T1 S1 D1.\n\nIn addition we shall not include misses in considering combinations;
29
+ for example, D3 is the **same** as 0 D3 and 0 0 D3.\n\nIncredibly there are 42336
30
+ distinct ways of checking out in total.\n\nHow many distinct ways can a player checkout
31
+ with a score less than 100?\n\n"
data/data/problems/11.yml CHANGED
@@ -2,32 +2,27 @@
2
2
  :id: 11
3
3
  :name: Largest product in a grid
4
4
  :url: http://projecteuler.net/problem=11
5
- :content: "\r\n<p>In the 20<img src=\"images/symbol_times.gif\" width=\"9\" height=\"9\"
6
- alt=\"×\" border=\"0\" style=\"vertical-align:middle;\">20 grid below, four numbers
7
- along a diagonal line have been marked in red.</p>\r\n<p style=\"font-family:courier
8
- new;text-align:center;font-size:10pt;\">\r\n08 02 22 97 38 15 00 40 00 75 04 05
9
- 07 78 52 12 50 77 91 08<br>\r\n49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04
10
- 56 62 00<br>\r\n81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65<br>\r\n52
11
- 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91<br>\r\n22 31 16 71 51 67
12
- 63 89 41 92 36 54 22 40 40 28 66 33 13 80<br>\r\n24 47 32 60 99 03 45 02 44 75 33
13
- 53 78 36 84 20 35 17 12 50<br>\r\n32 98 81 28 64 23 67 10 <span style=\"color:#ff0000;\"><b>26</b></span>
14
- 38 40 67 59 54 70 66 18 38 64 70<br>\r\n67 26 20 68 02 62 12 20 95 <span style=\"color:#ff0000;\"><b>63</b></span>
15
- 94 39 63 08 40 91 66 49 94 21<br>\r\n24 55 58 05 66 73 99 26 97 17 <span style=\"color:#ff0000;\"><b>78</b></span>
16
- 78 96 83 14 88 34 89 63 72<br>\r\n21 36 23 09 75 00 76 44 20 45 35 <span style=\"color:#ff0000;\"><b>14</b></span>
17
- 00 61 33 97 34 31 33 95<br>\r\n78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09
18
- 53 56 92<br>\r\n16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57<br>\r\n86
19
- 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58<br>\r\n19 80 81 68 05 94
20
- 47 69 28 73 92 13 86 52 17 77 04 89 55 40<br>\r\n04 52 08 83 97 35 99 16 07 97 57
21
- 32 16 26 26 79 33 27 98 66<br>\r\n88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32
22
- 63 93 53 69<br>\r\n04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36<br>\r\n20
23
- 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16<br>\r\n20 73 35 29 78 31
24
- 90 01 74 31 49 71 48 86 81 16 23 57 05 54<br>\r\n01 70 54 71 83 51 54 69 16 92 33
25
- 48 61 43 52 01 89 19 67 48<br></p>\r\n<p>The product of these numbers is 26 <img
26
- src=\"images/symbol_times.gif\" width=\"9\" height=\"9\" alt=\"×\" border=\"0\"
27
- style=\"vertical-align:middle;\"> 63 <img src=\"images/symbol_times.gif\" width=\"9\"
28
- height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\"> 78 <img src=\"images/symbol_times.gif\"
29
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\">
30
- 14 = 1788696.</p>\r\n<p>What is the greatest product of four adjacent numbers in
31
- the same direction (up, down, left, right, or diagonally) in the 20<img src=\"images/symbol_times.gif\"
32
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\">20
33
- grid?</p>\r\n\r\n"
5
+ :content: "In the 20 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif)20
6
+ grid below, four numbers along a diagonal line have been marked in red.\n\n08 02
7
+ 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 \n\r49 49 99 40 17 81 18
8
+ 57 60 87 17 40 98 43 69 48 04 56 62 00 \n\r81 49 31 73 55 79 14 29 93 71 40 67
9
+ 53 88 30 03 49 13 36 65 \n\r52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37
10
+ 02 36 91 \n\r22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 \n\r24
11
+ 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 \n\r32 98 81 28 64 23
12
+ 67 10 **26** 38 40 67 59 54 70 66 18 38 64 70 \n\r67 26 20 68 02 62 12 20 95 **63**
13
+ 94 39 63 08 40 91 66 49 94 21 \n\r24 55 58 05 66 73 99 26 97 17 **78** 78 96 83
14
+ 14 88 34 89 63 72 \n\r21 36 23 09 75 00 76 44 20 45 35 **14** 00 61 33 97 34 31
15
+ 33 95 \n\r78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 \n\r16 39
16
+ 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 \n\r86 56 00 48 35 71 89
17
+ 07 05 44 44 37 44 60 21 58 51 54 17 58 \n\r19 80 81 68 05 94 47 69 28 73 92 13
18
+ 86 52 17 77 04 89 55 40 \n\r04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33
19
+ 27 98 66 \n\r88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69 \n\r04
20
+ 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36 \n\r20 69 36 41 72 30
21
+ 23 88 34 62 99 69 82 67 59 85 74 04 36 16 \n\r20 73 35 29 78 31 90 01 74 31 49
22
+ 71 48 86 81 16 23 57 05 54 \n\r01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01
23
+ 89 19 67 48\n\nThe product of these numbers is 26 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif)
24
+ 63 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) 78
25
+ ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) 14 = 1788696.\n\nWhat
26
+ is the greatest product of four adjacent numbers in the same direction (up, down,
27
+ left, right, or diagonally) in the 20 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif)20
28
+ grid?\n\n"