euler-manager 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (618) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.travis.yml +2 -1
  4. data/README.md +27 -21
  5. data/Rakefile +3 -2
  6. data/config/config.rb +6 -2
  7. data/data/answers.yml +431 -430
  8. data/data/images/{p_015.gif → p015.gif} +0 -0
  9. data/data/images/{p_068_1.gif → p068_1.gif} +0 -0
  10. data/data/images/{p_068_2.gif → p068_2.gif} +0 -0
  11. data/data/images/{p_085.gif → p085.gif} +0 -0
  12. data/data/images/{p_086.gif → p086.gif} +0 -0
  13. data/data/images/{p_090.gif → p090.gif} +0 -0
  14. data/data/images/{p_091_1.gif → p091_1.gif} +0 -0
  15. data/data/images/{p_091_2.gif → p091_2.gif} +0 -0
  16. data/data/images/{p_107_1.gif → p107_1.gif} +0 -0
  17. data/data/images/{p_107_2.gif → p107_2.gif} +0 -0
  18. data/data/images/{p_109.gif → p109.gif} +0 -0
  19. data/data/images/{p_126.gif → p126.gif} +0 -0
  20. data/data/images/{p_128.gif → p128.gif} +0 -0
  21. data/data/images/{p_138.gif → p138.gif} +0 -0
  22. data/data/images/{p_139.gif → p139.gif} +0 -0
  23. data/data/images/{p_143_torricelli.gif → p143_torricelli.gif} +0 -0
  24. data/data/images/{p_144_1.gif → p144_1.gif} +0 -0
  25. data/data/images/{p_144_2.gif → p144_2.gif} +0 -0
  26. data/data/images/{p_147.gif → p147.gif} +0 -0
  27. data/data/images/{p_150.gif → p150.gif} +0 -0
  28. data/data/images/{p_151.gif → p151.gif} +0 -0
  29. data/data/images/{p_152_sum.gif → p152_sum.gif} +0 -0
  30. data/data/images/{p_153_formule1.gif → p153_formule1.gif} +0 -0
  31. data/data/images/{p_153_formule2.gif → p153_formule2.gif} +0 -0
  32. data/data/images/{p_153_formule5.gif → p153_formule5.gif} +0 -0
  33. data/data/images/{p_153_formule6.gif → p153_formule6.gif} +0 -0
  34. data/data/images/{p_154_pyramid.gif → p154_pyramid.gif} +0 -0
  35. data/data/images/{p_155_capacitors1.gif → p155_capacitors1.gif} +0 -0
  36. data/data/images/{p_155_capsform.gif → p155_capsform.gif} +0 -0
  37. data/data/images/{p_155_capsmu.gif → p155_capsmu.gif} +0 -0
  38. data/data/images/{p_161_k9.gif → p161_k9.gif} +0 -0
  39. data/data/images/{p_161_trio1.gif → p161_trio1.gif} +0 -0
  40. data/data/images/{p_161_trio3.gif → p161_trio3.gif} +0 -0
  41. data/data/images/{p_163.gif → p163.gif} +0 -0
  42. data/data/images/{p_173_square_laminas.gif → p173_square_laminas.gif} +0 -0
  43. data/data/images/{p_177_quad.gif → p177_quad.gif} +0 -0
  44. data/data/images/{p_184.gif → p184.gif} +0 -0
  45. data/data/images/{p_189_colours.gif → p189_colours.gif} +0 -0
  46. data/data/images/{p_189_grid.gif → p189_grid.gif} +0 -0
  47. data/data/images/{p_194_Fig.png → p194_Fig.png} +0 -0
  48. data/data/images/{p_194_GraphA.png → p194_GraphA.png} +0 -0
  49. data/data/images/{p_194_GraphB.png → p194_GraphB.png} +0 -0
  50. data/data/images/{p_199_circles_in_circles.gif → p199_circles_in_circles.gif} +0 -0
  51. data/data/images/{p_201_laserbeam.gif → p201_laserbeam.gif} +0 -0
  52. data/data/images/{p_208_robotwalk.gif → p208_robotwalk.gif} +0 -0
  53. data/data/images/{p_215_crackfree.gif → p215_crackfree.gif} +0 -0
  54. data/data/images/{p_220.gif → p220.gif} +0 -0
  55. data/data/images/{p_226_formula.gif → p226_formula.gif} +0 -0
  56. data/data/images/{p_226_scoop2.gif → p226_scoop2.gif} +0 -0
  57. data/data/images/{p_228.png → p228.png} +0 -0
  58. data/data/images/{p_237.gif → p237.gif} +0 -0
  59. data/data/images/{p_244_example.gif → p244_example.gif} +0 -0
  60. data/data/images/{p_244_start.gif → p244_start.gif} +0 -0
  61. data/data/images/{p_244_target.gif → p244_target.gif} +0 -0
  62. data/data/images/{p_246_anim.gif → p246_anim.gif} +0 -0
  63. data/data/images/{p_246_ellipse.gif → p246_ellipse.gif} +0 -0
  64. data/data/images/{p_247_hypersquares.gif → p247_hypersquares.gif} +0 -0
  65. data/data/images/{p_251_cardano.gif → p251_cardano.gif} +0 -0
  66. data/data/images/{p_252_convexhole.gif → p252_convexhole.gif} +0 -0
  67. data/data/images/{p_255_Example.gif → p255_Example.gif} +0 -0
  68. data/data/images/{p_255_Heron.gif → p255_Heron.gif} +0 -0
  69. data/data/images/{p_256_tatami3.gif → p256_tatami3.gif} +0 -0
  70. data/data/images/{p_257_bisector.gif → p257_bisector.gif} +0 -0
  71. data/data/images/{p_262_formula1.gif → p262_formula1.gif} +0 -0
  72. data/data/images/{p_264_TriangleCentres.gif → p264_TriangleCentres.gif} +0 -0
  73. data/data/images/{p_265_BinaryCircles.gif → p265_BinaryCircles.gif} +0 -0
  74. data/data/images/{p_270_CutSquare.gif → p270_CutSquare.gif} +0 -0
  75. data/data/images/{p_275_sculptures2.gif → p275_sculptures2.gif} +0 -0
  76. data/data/images/{p_281_pizza.gif → p281_pizza.gif} +0 -0
  77. data/data/images/{p_282_formula.gif → p282_formula.gif} +0 -0
  78. data/data/images/{p_282formula3.gif → p282formula3.gif} +0 -0
  79. data/data/images/{p_287_quadtree.gif → p287_quadtree.gif} +0 -0
  80. data/data/images/{p_289_euler.gif → p289_euler.gif} +0 -0
  81. data/data/images/{p_291_formula.gif → p291_formula.gif} +0 -0
  82. data/data/images/{p_299_ThreeSimTri.gif → p299_ThreeSimTri.gif} +0 -0
  83. data/data/images/{p_300_protein.gif → p300_protein.gif} +0 -0
  84. data/data/images/{p_306_pstrip.gif → p306_pstrip.gif} +0 -0
  85. data/data/images/{p_309_ladders.gif → p309_ladders.gif} +0 -0
  86. data/data/images/{p_311_biclinic.gif → p311_biclinic.gif} +0 -0
  87. data/data/images/{p_312_sierpinsky8t.gif → p312_sierpinsky8t.gif} +0 -0
  88. data/data/images/{p_312_sierpinskyAt.gif → p312_sierpinskyAt.gif} +0 -0
  89. data/data/images/{p_313_sliding_game_1.gif → p313_sliding_game_1.gif} +0 -0
  90. data/data/images/{p_313_sliding_game_2.gif → p313_sliding_game_2.gif} +0 -0
  91. data/data/images/{p_314_landgrab.gif → p314_landgrab.gif} +0 -0
  92. data/data/images/{p_315_clocks.gif → p315_clocks.gif} +0 -0
  93. data/data/images/{p_316_decexp1.gif → p316_decexp1.gif} +0 -0
  94. data/data/images/{p_316_decexp2.gif → p316_decexp2.gif} +0 -0
  95. data/data/images/{p_316_decexp3.gif → p316_decexp3.gif} +0 -0
  96. data/data/images/{p_321_swapping_counters_1.gif → p321_swapping_counters_1.gif} +0 -0
  97. data/data/images/{p_321_swapping_counters_2.gif → p321_swapping_counters_2.gif} +0 -0
  98. data/data/images/{p_326_formula1.gif → p326_formula1.gif} +0 -0
  99. data/data/images/{p_326_formula2.gif → p326_formula2.gif} +0 -0
  100. data/data/images/{p_327_rooms_of_doom.gif → p327_rooms_of_doom.gif} +0 -0
  101. data/data/images/{p_328_sum1.gif → p328_sum1.gif} +0 -0
  102. data/data/images/{p_328_sum2.gif → p328_sum2.gif} +0 -0
  103. data/data/images/{p_330_formula.gif → p330_formula.gif} +0 -0
  104. data/data/images/{p_331_crossflips1.gif → p331_crossflips1.gif} +0 -0
  105. data/data/images/{p_331_crossflips2.gif → p331_crossflips2.gif} +0 -0
  106. data/data/images/{p_331_crossflips3.gif → p331_crossflips3.gif} +0 -0
  107. data/data/images/{p_332_spherical.jpg → p332_spherical.jpg} +0 -0
  108. data/data/images/{p_332_sum.gif → p332_sum.gif} +0 -0
  109. data/data/images/{p_334_beans.gif → p334_beans.gif} +0 -0
  110. data/data/images/{p_334_cases.gif → p334_cases.gif} +0 -0
  111. data/data/images/{p_334_lfloor.gif → p334_lfloor.gif} +0 -0
  112. data/data/images/{p_334_oplus.gif → p334_oplus.gif} +0 -0
  113. data/data/images/{p_334_rfloor.gif → p334_rfloor.gif} +0 -0
  114. data/data/images/{p_335_mancala.gif → p335_mancala.gif} +0 -0
  115. data/data/images/{p_335_sum.gif → p335_sum.gif} +0 -0
  116. data/data/images/{p_336_maximix.gif → p336_maximix.gif} +0 -0
  117. data/data/images/{p_338_gridpaper.gif → p338_gridpaper.gif} +0 -0
  118. data/data/images/{p_340_formula.gif → p340_formula.gif} +0 -0
  119. data/data/images/{p_344_silverdollar.gif → p344_silverdollar.gif} +0 -0
  120. data/data/images/{p_351_hexorchard.png → p351_hexorchard.png} +0 -0
  121. data/data/images/{p_354_bee_honeycomb.png → p354_bee_honeycomb.png} +0 -0
  122. data/data/images/{p_356_cubicpoly1.gif → p356_cubicpoly1.gif} +0 -0
  123. data/data/images/{p_356_cubicpoly2.gif → p356_cubicpoly2.gif} +0 -0
  124. data/data/images/{p_361_Thue-Morse1.gif → p361_Thue-Morse1.gif} +0 -0
  125. data/data/images/p363_bezier.png +0 -0
  126. data/data/images/{p_364_comf_dist.gif → p364_comf_dist.gif} +0 -0
  127. data/data/images/{p_372_pencilray1.jpg → p372_pencilray1.jpg} +0 -0
  128. data/data/images/{p_372_pencilray2.gif → p372_pencilray2.gif} +0 -0
  129. data/data/images/{p_380_mazes.gif → p380_mazes.gif} +0 -0
  130. data/data/images/{p_384_formula.gif → p384_formula.gif} +0 -0
  131. data/data/images/{p_385_ellipsetriangle.png → p385_ellipsetriangle.png} +0 -0
  132. data/data/images/{p_394_eatpie.gif → p394_eatpie.gif} +0 -0
  133. data/data/images/{p_395_pythagorean.gif → p395_pythagorean.gif} +0 -0
  134. data/data/images/{p_404_c_ellipse.gif → p404_c_ellipse.gif} +0 -0
  135. data/data/images/{p_405_tile1.png → p405_tile1.png} +0 -0
  136. data/data/images/{p_405_tile2.gif → p405_tile2.gif} +0 -0
  137. data/data/images/{p_420_matrix.gif → p420_matrix.gif} +0 -0
  138. data/data/images/{p_424_kakuro1.gif → p424_kakuro1.gif} +0 -0
  139. data/data/images/{p_426_baxball1.gif → p426_baxball1.gif} +0 -0
  140. data/data/images/{p_426_baxball2.gif → p426_baxball2.gif} +0 -0
  141. data/data/images/{p_430_flips.gif → p430_flips.gif} +0 -0
  142. data/data/problems/1.yml +1 -1
  143. data/data/problems/10.yml +6 -4
  144. data/data/problems/100.yml +2 -2
  145. data/data/problems/101.yml +15 -19
  146. data/data/problems/102.yml +9 -10
  147. data/data/problems/103.yml +7 -8
  148. data/data/problems/104.yml +2 -2
  149. data/data/problems/105.yml +4 -4
  150. data/data/problems/106.yml +3 -3
  151. data/data/problems/107.yml +12 -12
  152. data/data/problems/108.yml +8 -14
  153. data/data/problems/109.yml +12 -11
  154. data/data/problems/11.yml +21 -24
  155. data/data/problems/110.yml +9 -10
  156. data/data/problems/111.yml +1 -1
  157. data/data/problems/112.yml +1 -1
  158. data/data/problems/113.yml +1 -1
  159. data/data/problems/114.yml +2 -2
  160. data/data/problems/115.yml +1 -1
  161. data/data/problems/116.yml +11 -11
  162. data/data/problems/117.yml +3 -3
  163. data/data/problems/118.yml +1 -1
  164. data/data/problems/119.yml +1 -1
  165. data/data/problems/12.yml +6 -6
  166. data/data/problems/120.yml +4 -4
  167. data/data/problems/121.yml +1 -1
  168. data/data/problems/122.yml +10 -18
  169. data/data/problems/123.yml +3 -3
  170. data/data/problems/124.yml +17 -19
  171. data/data/problems/125.yml +1 -1
  172. data/data/problems/126.yml +12 -11
  173. data/data/problems/127.yml +8 -8
  174. data/data/problems/128.yml +3 -3
  175. data/data/problems/129.yml +1 -1
  176. data/data/problems/13.yml +1 -1
  177. data/data/problems/130.yml +6 -7
  178. data/data/problems/131.yml +2 -2
  179. data/data/problems/132.yml +2 -2
  180. data/data/problems/133.yml +2 -2
  181. data/data/problems/134.yml +3 -3
  182. data/data/problems/135.yml +3 -3
  183. data/data/problems/136.yml +3 -3
  184. data/data/problems/137.yml +9 -9
  185. data/data/problems/138.yml +5 -5
  186. data/data/problems/139.yml +2 -2
  187. data/data/problems/14.yml +8 -13
  188. data/data/problems/140.yml +5 -5
  189. data/data/problems/141.yml +2 -2
  190. data/data/problems/142.yml +3 -4
  191. data/data/problems/143.yml +3 -3
  192. data/data/problems/144.yml +4 -4
  193. data/data/problems/145.yml +1 -1
  194. data/data/problems/146.yml +1 -1
  195. data/data/problems/147.yml +6 -6
  196. data/data/problems/148.yml +8 -8
  197. data/data/problems/149.yml +12 -25
  198. data/data/problems/15.yml +4 -4
  199. data/data/problems/150.yml +16 -17
  200. data/data/problems/151.yml +3 -3
  201. data/data/problems/152.yml +2 -2
  202. data/data/problems/153.yml +30 -35
  203. data/data/problems/154.yml +16 -12
  204. data/data/problems/155.yml +7 -6
  205. data/data/problems/156.yml +8 -9
  206. data/data/problems/157.yml +4 -6
  207. data/data/problems/158.yml +12 -12
  208. data/data/problems/159.yml +14 -16
  209. data/data/problems/16.yml +1 -1
  210. data/data/problems/160.yml +3 -3
  211. data/data/problems/161.yml +6 -6
  212. data/data/problems/162.yml +3 -3
  213. data/data/problems/163.yml +3 -3
  214. data/data/problems/164.yml +3 -4
  215. data/data/problems/165.yml +12 -12
  216. data/data/problems/166.yml +6 -8
  217. data/data/problems/167.yml +6 -7
  218. data/data/problems/168.yml +5 -7
  219. data/data/problems/169.yml +2 -2
  220. data/data/problems/17.yml +5 -5
  221. data/data/problems/170.yml +9 -10
  222. data/data/problems/171.yml +4 -5
  223. data/data/problems/172.yml +3 -4
  224. data/data/problems/173.yml +2 -2
  225. data/data/problems/174.yml +4 -4
  226. data/data/problems/175.yml +12 -13
  227. data/data/problems/176.yml +1 -1
  228. data/data/problems/177.yml +2 -2
  229. data/data/problems/178.yml +6 -6
  230. data/data/problems/179.yml +4 -4
  231. data/data/problems/18.yml +11 -12
  232. data/data/problems/180.yml +9 -12
  233. data/data/problems/181.yml +1 -1
  234. data/data/problems/182.yml +14 -16
  235. data/data/problems/183.yml +12 -15
  236. data/data/problems/184.yml +3 -3
  237. data/data/problems/185.yml +11 -11
  238. data/data/problems/186.yml +10 -11
  239. data/data/problems/187.yml +8 -8
  240. data/data/problems/188.yml +4 -4
  241. data/data/problems/189.yml +4 -4
  242. data/data/problems/19.yml +1 -1
  243. data/data/problems/190.yml +2 -2
  244. data/data/problems/191.yml +5 -5
  245. data/data/problems/192.yml +10 -14
  246. data/data/problems/193.yml +1 -1
  247. data/data/problems/194.yml +10 -10
  248. data/data/problems/195.yml +5 -6
  249. data/data/problems/196.yml +15 -14
  250. data/data/problems/197.yml +7 -8
  251. data/data/problems/198.yml +8 -14
  252. data/data/problems/199.yml +3 -3
  253. data/data/problems/2.yml +8 -7
  254. data/data/problems/20.yml +4 -9
  255. data/data/problems/200.yml +7 -8
  256. data/data/problems/201.yml +14 -14
  257. data/data/problems/202.yml +2 -2
  258. data/data/problems/203.yml +21 -13
  259. data/data/problems/204.yml +7 -7
  260. data/data/problems/205.yml +6 -6
  261. data/data/problems/206.yml +1 -1
  262. data/data/problems/207.yml +10 -10
  263. data/data/problems/208.yml +4 -5
  264. data/data/problems/209.yml +6 -6
  265. data/data/problems/21.yml +7 -7
  266. data/data/problems/210.yml +6 -6
  267. data/data/problems/211.yml +2 -2
  268. data/data/problems/212.yml +16 -20
  269. data/data/problems/213.yml +6 -6
  270. data/data/problems/214.yml +9 -10
  271. data/data/problems/215.yml +5 -5
  272. data/data/problems/216.yml +5 -6
  273. data/data/problems/217.yml +7 -12
  274. data/data/problems/218.yml +9 -10
  275. data/data/problems/219.yml +5 -5
  276. data/data/problems/22.yml +3 -3
  277. data/data/problems/220.yml +15 -16
  278. data/data/problems/221.yml +8 -8
  279. data/data/problems/222.yml +1 -1
  280. data/data/problems/223.yml +5 -6
  281. data/data/problems/224.yml +5 -6
  282. data/data/problems/225.yml +2 -2
  283. data/data/problems/226.yml +8 -9
  284. data/data/problems/227.yml +3 -3
  285. data/data/problems/228.yml +17 -16
  286. data/data/problems/229.yml +16 -19
  287. data/data/problems/23.yml +1 -3
  288. data/data/problems/230.yml +9 -11
  289. data/data/problems/231.yml +5 -8
  290. data/data/problems/232.yml +1 -1
  291. data/data/problems/233.yml +2 -2
  292. data/data/problems/234.yml +11 -13
  293. data/data/problems/235.yml +2 -2
  294. data/data/problems/236.yml +13 -19
  295. data/data/problems/237.yml +4 -4
  296. data/data/problems/238.yml +16 -19
  297. data/data/problems/239.yml +2 -2
  298. data/data/problems/24.yml +2 -2
  299. data/data/problems/240.yml +7 -7
  300. data/data/problems/241.yml +4 -7
  301. data/data/problems/242.yml +5 -6
  302. data/data/problems/243.yml +13 -13
  303. data/data/problems/244.yml +15 -15
  304. data/data/problems/245.yml +8 -20
  305. data/data/problems/246.yml +11 -12
  306. data/data/problems/247.yml +11 -12
  307. data/data/problems/248.yml +1 -1
  308. data/data/problems/249.yml +2 -2
  309. data/data/problems/25.yml +8 -12
  310. data/data/problems/250.yml +4 -4
  311. data/data/problems/251.yml +4 -4
  312. data/data/problems/252.yml +13 -20
  313. data/data/problems/253.yml +9 -8
  314. data/data/problems/254.yml +3 -3
  315. data/data/problems/255.yml +15 -37
  316. data/data/problems/256.yml +19 -24
  317. data/data/problems/257.yml +8 -10
  318. data/data/problems/258.yml +9 -7
  319. data/data/problems/259.yml +1 -1
  320. data/data/problems/26.yml +11 -11
  321. data/data/problems/260.yml +15 -18
  322. data/data/problems/261.yml +15 -13
  323. data/data/problems/262.yml +15 -14
  324. data/data/problems/263.yml +13 -13
  325. data/data/problems/264.yml +10 -11
  326. data/data/problems/265.yml +2 -2
  327. data/data/problems/266.yml +7 -7
  328. data/data/problems/267.yml +1 -1
  329. data/data/problems/268.yml +1 -1
  330. data/data/problems/269.yml +3 -3
  331. data/data/problems/27.yml +12 -15
  332. data/data/problems/270.yml +4 -4
  333. data/data/problems/271.yml +5 -6
  334. data/data/problems/272.yml +5 -7
  335. data/data/problems/273.yml +4 -4
  336. data/data/problems/274.yml +4 -5
  337. data/data/problems/275.yml +4 -4
  338. data/data/problems/276.yml +5 -6
  339. data/data/problems/277.yml +7 -8
  340. data/data/problems/278.yml +16 -19
  341. data/data/problems/279.yml +3 -4
  342. data/data/problems/28.yml +6 -6
  343. data/data/problems/280.yml +2 -2
  344. data/data/problems/281.yml +4 -6
  345. data/data/problems/282.yml +3 -3
  346. data/data/problems/283.yml +6 -7
  347. data/data/problems/284.yml +7 -8
  348. data/data/problems/285.yml +4 -4
  349. data/data/problems/286.yml +2 -2
  350. data/data/problems/287.yml +19 -24
  351. data/data/problems/288.yml +7 -8
  352. data/data/problems/289.yml +11 -11
  353. data/data/problems/29.yml +10 -13
  354. data/data/problems/290.yml +3 -4
  355. data/data/problems/291.yml +4 -4
  356. data/data/problems/292.yml +5 -6
  357. data/data/problems/293.yml +9 -10
  358. data/data/problems/294.yml +12 -7
  359. data/data/problems/295.yml +11 -13
  360. data/data/problems/296.yml +9 -9
  361. data/data/problems/297.yml +7 -9
  362. data/data/problems/298.yml +32 -40
  363. data/data/problems/299.yml +17 -19
  364. data/data/problems/3.yml +6 -4
  365. data/data/problems/30.yml +1 -1
  366. data/data/problems/300.yml +14 -14
  367. data/data/problems/301.yml +9 -10
  368. data/data/problems/302.yml +5 -5
  369. data/data/problems/303.yml +4 -4
  370. data/data/problems/304.yml +7 -9
  371. data/data/problems/305.yml +4 -5
  372. data/data/problems/306.yml +10 -12
  373. data/data/problems/307.yml +4 -4
  374. data/data/problems/308.yml +4 -4
  375. data/data/problems/309.yml +11 -9
  376. data/data/problems/31.yml +2 -2
  377. data/data/problems/310.yml +6 -9
  378. data/data/problems/311.yml +10 -12
  379. data/data/problems/312.yml +10 -9
  380. data/data/problems/313.yml +5 -5
  381. data/data/problems/314.yml +8 -9
  382. data/data/problems/315.yml +35 -38
  383. data/data/problems/316.yml +17 -16
  384. data/data/problems/317.yml +8 -7
  385. data/data/problems/318.yml +14 -29
  386. data/data/problems/319.yml +10 -12
  387. data/data/problems/32.yml +2 -2
  388. data/data/problems/320.yml +2 -2
  389. data/data/problems/321.yml +12 -11
  390. data/data/problems/322.yml +4 -5
  391. data/data/problems/323.yml +7 -9
  392. data/data/problems/324.yml +7 -9
  393. data/data/problems/325.yml +2 -2
  394. data/data/problems/326.yml +3 -3
  395. data/data/problems/327.yml +19 -22
  396. data/data/problems/328.yml +23 -23
  397. data/data/problems/329.yml +6 -6
  398. data/data/problems/33.yml +2 -2
  399. data/data/problems/330.yml +12 -16
  400. data/data/problems/331.yml +16 -18
  401. data/data/problems/332.yml +10 -10
  402. data/data/problems/333.yml +15 -16
  403. data/data/problems/334.yml +17 -19
  404. data/data/problems/335.yml +3 -3
  405. data/data/problems/336.yml +5 -5
  406. data/data/problems/337.yml +7 -8
  407. data/data/problems/338.yml +18 -24
  408. data/data/problems/339.yml +3 -3
  409. data/data/problems/34.yml +1 -1
  410. data/data/problems/340.yml +7 -7
  411. data/data/problems/341.yml +4 -5
  412. data/data/problems/342.yml +6 -9
  413. data/data/problems/343.yml +8 -13
  414. data/data/problems/344.yml +8 -8
  415. data/data/problems/345.yml +17 -16
  416. data/data/problems/346.yml +6 -6
  417. data/data/problems/347.yml +8 -10
  418. data/data/problems/348.yml +5 -5
  419. data/data/problems/349.yml +4 -4
  420. data/data/problems/35.yml +1 -1
  421. data/data/problems/350.yml +5 -6
  422. data/data/problems/351.yml +7 -7
  423. data/data/problems/352.yml +13 -14
  424. data/data/problems/353.yml +2 -2
  425. data/data/problems/354.yml +6 -8
  426. data/data/problems/355.yml +4 -4
  427. data/data/problems/356.yml +5 -4
  428. data/data/problems/357.yml +3 -3
  429. data/data/problems/358.yml +11 -16
  430. data/data/problems/359.yml +12 -12
  431. data/data/problems/36.yml +1 -1
  432. data/data/problems/360.yml +4 -4
  433. data/data/problems/361.yml +9 -9
  434. data/data/problems/362.yml +8 -15
  435. data/data/problems/363.yml +29 -29
  436. data/data/problems/364.yml +4 -4
  437. data/data/problems/365.yml +3 -3
  438. data/data/problems/366.yml +16 -19
  439. data/data/problems/367.yml +11 -11
  440. data/data/problems/368.yml +14 -18
  441. data/data/problems/369.yml +2 -2
  442. data/data/problems/37.yml +1 -1
  443. data/data/problems/370.yml +4 -4
  444. data/data/problems/371.yml +5 -5
  445. data/data/problems/372.yml +6 -7
  446. data/data/problems/373.yml +10 -6
  447. data/data/problems/374.yml +11 -13
  448. data/data/problems/375.yml +11 -14
  449. data/data/problems/376.yml +19 -19
  450. data/data/problems/377.yml +5 -5
  451. data/data/problems/378.yml +8 -9
  452. data/data/problems/379.yml +10 -9
  453. data/data/problems/38.yml +9 -11
  454. data/data/problems/380.yml +8 -10
  455. data/data/problems/381.yml +6 -10
  456. data/data/problems/382.yml +12 -13
  457. data/data/problems/383.yml +5 -6
  458. data/data/problems/384.yml +14 -18
  459. data/data/problems/385.yml +12 -14
  460. data/data/problems/386.yml +4 -5
  461. data/data/problems/387.yml +13 -14
  462. data/data/problems/388.yml +6 -6
  463. data/data/problems/389.yml +3 -3
  464. data/data/problems/39.yml +2 -2
  465. data/data/problems/390.yml +12 -8
  466. data/data/problems/391.yml +18 -20
  467. data/data/problems/392.yml +9 -9
  468. data/data/problems/393.yml +8 -8
  469. data/data/problems/394.yml +14 -15
  470. data/data/problems/395.yml +16 -15
  471. data/data/problems/396.yml +13 -16
  472. data/data/problems/397.yml +4 -6
  473. data/data/problems/398.yml +8 -9
  474. data/data/problems/399.yml +18 -19
  475. data/data/problems/4.yml +2 -2
  476. data/data/problems/40.yml +2 -2
  477. data/data/problems/400.yml +10 -9
  478. data/data/problems/401.yml +6 -7
  479. data/data/problems/402.yml +7 -9
  480. data/data/problems/403.yml +9 -10
  481. data/data/problems/404.yml +8 -10
  482. data/data/problems/405.yml +10 -10
  483. data/data/problems/406.yml +24 -30
  484. data/data/problems/407.yml +6 -10
  485. data/data/problems/408.yml +10 -10
  486. data/data/problems/409.yml +12 -7
  487. data/data/problems/41.yml +1 -1
  488. data/data/problems/410.yml +5 -6
  489. data/data/problems/411.yml +10 -13
  490. data/data/problems/412.yml +10 -10
  491. data/data/problems/413.yml +6 -7
  492. data/data/problems/414.yml +26 -28
  493. data/data/problems/415.yml +12 -13
  494. data/data/problems/416.yml +4 -4
  495. data/data/problems/417.yml +12 -14
  496. data/data/problems/418.yml +13 -10
  497. data/data/problems/419.yml +11 -13
  498. data/data/problems/42.yml +2 -2
  499. data/data/problems/420.yml +8 -8
  500. data/data/problems/421.yml +8 -13
  501. data/data/problems/422.yml +8 -8
  502. data/data/problems/423.yml +11 -12
  503. data/data/problems/424.yml +10 -10
  504. data/data/problems/425.yml +7 -7
  505. data/data/problems/426.yml +9 -9
  506. data/data/problems/427.yml +12 -13
  507. data/data/problems/428.yml +17 -20
  508. data/data/problems/429.yml +5 -5
  509. data/data/problems/43.yml +1 -1
  510. data/data/problems/430.yml +6 -7
  511. data/data/problems/44.yml +4 -4
  512. data/data/problems/45.yml +4 -4
  513. data/data/problems/46.yml +6 -9
  514. data/data/problems/47.yml +5 -8
  515. data/data/problems/48.yml +1 -1
  516. data/data/problems/49.yml +1 -1
  517. data/data/problems/5.yml +1 -1
  518. data/data/problems/50.yml +1 -1
  519. data/data/problems/51.yml +1 -3
  520. data/data/problems/52.yml +1 -1
  521. data/data/problems/53.yml +6 -12
  522. data/data/problems/54.yml +17 -16
  523. data/data/problems/55.yml +3 -3
  524. data/data/problems/56.yml +2 -2
  525. data/data/problems/57.yml +9 -10
  526. data/data/problems/58.yml +11 -11
  527. data/data/problems/59.yml +2 -2
  528. data/data/problems/6.yml +2 -2
  529. data/data/problems/60.yml +1 -1
  530. data/data/problems/61.yml +7 -7
  531. data/data/problems/62.yml +1 -1
  532. data/data/problems/63.yml +1 -1
  533. data/data/problems/64.yml +30 -44
  534. data/data/problems/65.yml +19 -19
  535. data/data/problems/66.yml +9 -12
  536. data/data/problems/67.yml +9 -9
  537. data/data/problems/68.yml +3 -3
  538. data/data/problems/69.yml +3 -3
  539. data/data/problems/7.yml +1 -1
  540. data/data/problems/70.yml +4 -4
  541. data/data/problems/71.yml +4 -4
  542. data/data/problems/72.yml +4 -4
  543. data/data/problems/73.yml +4 -4
  544. data/data/problems/74.yml +9 -16
  545. data/data/problems/75.yml +3 -3
  546. data/data/problems/76.yml +1 -1
  547. data/data/problems/77.yml +1 -1
  548. data/data/problems/78.yml +8 -8
  549. data/data/problems/79.yml +2 -2
  550. data/data/problems/8.yml +12 -13
  551. data/data/problems/80.yml +1 -1
  552. data/data/problems/81.yml +8 -10
  553. data/data/problems/82.yml +10 -11
  554. data/data/problems/83.yml +10 -11
  555. data/data/problems/84.yml +45 -37
  556. data/data/problems/85.yml +2 -2
  557. data/data/problems/86.yml +8 -8
  558. data/data/problems/87.yml +1 -1
  559. data/data/problems/88.yml +11 -22
  560. data/data/problems/89.yml +14 -14
  561. data/data/problems/9.yml +6 -7
  562. data/data/problems/90.yml +7 -7
  563. data/data/problems/91.yml +6 -8
  564. data/data/problems/92.yml +6 -11
  565. data/data/problems/93.yml +11 -12
  566. data/data/problems/94.yml +1 -1
  567. data/data/problems/95.yml +2 -2
  568. data/data/problems/96.yml +7 -9
  569. data/data/problems/97.yml +3 -3
  570. data/data/problems/98.yml +2 -2
  571. data/data/problems/99.yml +4 -4
  572. data/euler-manager.gemspec +2 -2
  573. data/example/1/README.md +1 -1
  574. data/example/1/ruby/1.rb +7 -1
  575. data/example/1/scala/1.scala +1 -1
  576. data/example/15/README.md +4 -4
  577. data/example/2/README.md +1 -4
  578. data/languages/c.rb +22 -0
  579. data/languages/elixir.rb +25 -0
  580. data/languages/java.rb +3 -2
  581. data/languages/perl.rb +25 -0
  582. data/languages/php.rb +25 -0
  583. data/lib/euler/version.rb +1 -1
  584. data/rake/clean.rake +0 -2
  585. data/rake/sha_answers.rake +20 -0
  586. data/rake/update.rake +5 -2
  587. data/spec/euler_spec.rb +5 -0
  588. data/templates/c.c +11 -0
  589. data/templates/elixir.ex +1 -0
  590. data/templates/perl.pl +3 -0
  591. data/templates/php.php +5 -0
  592. metadata +148 -164
  593. data/data/images/blackdot.gif +0 -0
  594. data/data/images/bracket_left.gif +0 -0
  595. data/data/images/bracket_right.gif +0 -0
  596. data/data/images/sod_13.gif +0 -119
  597. data/data/images/symbol_asymp.gif +0 -0
  598. data/data/images/symbol_cong.gif +0 -0
  599. data/data/images/symbol_ge.gif +0 -0
  600. data/data/images/symbol_gt.gif +0 -0
  601. data/data/images/symbol_implies.gif +0 -0
  602. data/data/images/symbol_lceil.gif +0 -0
  603. data/data/images/symbol_le.gif +0 -0
  604. data/data/images/symbol_lfloor.gif +0 -0
  605. data/data/images/symbol_lt.gif +0 -0
  606. data/data/images/symbol_maps.gif +0 -0
  607. data/data/images/symbol_minus.gif +0 -0
  608. data/data/images/symbol_ne.gif +0 -0
  609. data/data/images/symbol_plusmn.gif +0 -0
  610. data/data/images/symbol_radic.gif +0 -0
  611. data/data/images/symbol_rceil.gif +0 -0
  612. data/data/images/symbol_rfloor.gif +0 -0
  613. data/data/images/symbol_sum.gif +0 -0
  614. data/data/images/symbol_times.gif +0 -0
  615. data/example/1/haskell/1.hs +0 -3
  616. data/example/12/README.md +0 -20
  617. data/example/12/haskell/12.hs +0 -3
  618. data/example/lib/Euler.hs +0 -1
@@ -1,23 +1,23 @@
1
1
  ---
2
2
  :id: 424
3
3
  :name: Kakuro
4
- :url: http://projecteuler.net/problem=424
5
- :content: "![]({{ images_dir }}/p_424_kakuro1.gif)\n\nThe above is an example of a
6
- cryptic kakuro (also known as cross sums, or even sums cross) puzzle, with its final
7
- solution on the right. (The common rules of kakuro puzzles can be found easily on
8
- numerous internet sites. Other related information can also be currently found at
9
- [krazydad.com](http://krazydad.com/) whose author has provided the puzzle data for
10
- this challenge.)\n\nThe downloadable text file ( [kakuro200.txt](project/kakuro200.txt))
4
+ :url: https://projecteuler.net/problem=424
5
+ :content: " ![p424_kakuro1.gif]({{ images_dir }}/p424_kakuro1.gif)\n\nThe above is
6
+ an example of a cryptic kakuro (also known as cross sums, or even sums cross) puzzle,
7
+ with its final solution on the right. (The common rules of kakuro puzzles can be
8
+ found easily on numerous internet sites. Other related information can also be currently
9
+ found at [krazydad.com](http://krazydad.com/) whose author has provided the puzzle
10
+ data for this challenge.)\n\nThe downloadable text file ([kakuro200.txt](project/resources/p424_kakuro200.txt))
11
11
  contains the description of 200 such puzzles, a mix of 5x5 and 6x6 types. The first
12
12
  puzzle in the file is the above example which is coded as follows:\n\n6,X,X,(vCC),(vI),X,X,X,(hH),B,O,(vCA),(vJE),X,(hFE,vD),O,O,O,O,(hA),O,I,(hJC,vB),O,O,(hJC),H,O,O,O,X,X,X,(hJE),O,O,X\n\nThe
13
13
  first character is a numerical digit indicating the size of the information grid.
14
14
  It would be either a 6 (for a 5x5 kakuro puzzle) or a 7 (for a 6x6 puzzle) followed
15
15
  by a comma (,). The extra top line and left column are needed to insert information.\n\nThe
16
16
  content of each cell is then described and followed by a comma, going left to right
17
- and starting with the top line. \n\rX = Gray cell, not required to be filled by
18
- a digit. \n\rO (upper case letter)= White empty cell to be filled by a digit. \n\rA
17
+ and starting with the top line. \nX = Gray cell, not required to be filled by a
18
+ digit. \nO (upper case letter)= White empty cell to be filled by a digit. \nA
19
19
  = Or any one of the upper case letters from A to J to be replaced by its equivalent
20
- digit in the solved puzzle. \n\r( ) = Location of the encrypted sums. Horizontal
20
+ digit in the solved puzzle. \n( ) = Location of the encrypted sums. Horizontal
21
21
  sums are preceded by a lower case \"h\" and vertical sums are preceded by a lower
22
22
  case \"v\". Those are followed by one or two upper case letters depending if the
23
23
  sum is a single digit or double digit one. For double digit sums, the first letter
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  :id: 425
3
3
  :name: Prime connection
4
- :url: http://projecteuler.net/problem=425
4
+ :url: https://projecteuler.net/problem=425
5
5
  :content: "Two positive numbers A and B are said to be _connected_ (denoted by \"A
6
- ↔ B\") if one of these conditions holds: \n\r(1) A and B have the same length and
7
- differ in exactly one digit; for example, 123 ↔ 173. \n\r(2) Adding one digit to
6
+ ↔ B\") if one of these conditions holds: \n(1) A and B have the same length and
7
+ differ in exactly one digit; for example, 123 ↔ 173. \n(2) Adding one digit to
8
8
  the left of A (or B) makes B (or A); for example, 23 ↔ 223 and 123 ↔ 23.\n\nWe call
9
9
  a prime P a _2's relative_ if there exists a chain of connected primes between 2
10
10
  and P and no prime in the chain exceeds P.\n\nFor example, 127 is a 2's relative.
11
- One of the possible chains is shown below: \n\r2 ↔ 3 ↔ 13 ↔ 113 ↔ 103 ↔ 107 ↔ 127
12
- \ \n\rHowever, 11 and 103 are not 2's relatives.\n\nLet F(N) be the sum of the primes
13
- ![]({{ images_dir }}/symbol_le.gif) N which are not 2's relatives. \n\rWe can
14
- verify that F(10<sup>3</sup>) = 431 and F(10<sup>4</sup>) = 78728.\n\nFind F(10<sup>7</sup>).\n\n"
11
+ One of the possible chains is shown below: \n2 ↔ 3 ↔ 13 ↔ 113 ↔ 103 ↔ 107 ↔ 127
12
+ \ \nHowever, 11 and 103 are not 2's relatives.\n\nLet F(N) be the sum of the primes
13
+ ≤ N which are not 2's relatives. \nWe can verify that F(10<sup>3</sup>) = 431 and
14
+ F(10<sup>4</sup>) = 78728.\n\nFind F(10<sup>7</sup>).\n\n"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 426
3
3
  :name: Box-ball system
4
- :url: http://projecteuler.net/problem=426
4
+ :url: https://projecteuler.net/problem=426
5
5
  :content: "Consider an infinite row of boxes. Some of the boxes contain a ball. For
6
6
  example, an initial configuration of 2 consecutive occupied boxes followed by 2
7
7
  empty boxes, 2 occupied boxes, 1 empty box, and 2 occupied boxes can be denoted
@@ -10,19 +10,19 @@
10
10
  according to the following rule: Transfer the leftmost ball which has not been moved
11
11
  to the nearest empty box to its right.\n\nAfter one turn the sequence (2, 2, 2,
12
12
  1, 2) becomes (2, 2, 1, 2, 3) as can be seen below; note that we begin the new sequence
13
- starting at the first occupied box.\n\n ![]({{ images_dir }}/p_426_baxball1.gif)\n\nA
13
+ starting at the first occupied box.\n\n ![p426_baxball1.gif]({{ images_dir }}/p426_baxball1.gif)\n\nA
14
14
  system like this is called a **Box-Ball System** or **BBS** for short.\n\nIt can
15
15
  be shown that after a sufficient number of turns, the system evolves to a state
16
16
  where the consecutive numbers of occupied boxes is invariant. In the example below,
17
17
  the consecutive numbers of **occupied boxes** evolves to [1, 2, 3]; we shall call
18
- this the final state.\n\n ![]({{ images_dir }}/p_426_baxball2.gif)\n\nWe define
19
- the sequence {<var>t</var><sub><var>i</var></sub>}:\n\n- <var>s</var><sub>0</sub>
20
- = 290797\r\n- <var>s</var><sub><var>k</var>+1</sub> = <var>s</var><sub><var>k</var></sub><sup>2</sup>
21
- mod 50515093\r\n- <var>t</var><sub><var>k</var></sub> = (<var>s</var><sub><var>k</var></sub>
22
- mod 64) + 1\r\n\nStarting from the initial configuration (<var>t</var><sub>0</sub>,
18
+ this the final state.\n\n ![p426_baxball2.gif]({{ images_dir }}/p426_baxball2.gif)\n\nWe
19
+ define the sequence {<var>t</var><sub><var>i</var></sub>}:\n\n- <var>s</var><sub>0</sub>
20
+ = 290797\n- <var>s</var><sub><var>k</var>+1</sub> = <var>s</var><sub><var>k</var></sub><sup>2</sup>
21
+ mod 50515093\n- <var>t</var><sub><var>k</var></sub> = (<var>s</var><sub><var>k</var></sub>
22
+ mod 64) + 1\n\nStarting from the initial configuration (<var>t</var><sub>0</sub>,
23
23
  <var>t</var><sub>1</sub>, …, <var>t</var><sub>10</sub>), the final state becomes
24
- [1, 3, 10, 24, 51, 75]. \n\rStarting from the initial configuration (<var>t</var><sub>0</sub>,
24
+ [1, 3, 10, 24, 51, 75]. \nStarting from the initial configuration (<var>t</var><sub>0</sub>,
25
25
  <var>t</var><sub>1</sub>, …, <var>t</var><sub>10 000 000</sub>), find the final
26
- state. \n\rGive as your answer the sum of the squares of the elements of the final
26
+ state. \nGive as your answer the sum of the squares of the elements of the final
27
27
  state. For example, if the final state is [1, 2, 3] then 14 ( = 1<sup>2</sup> +
28
28
  2<sup>2</sup> + 3<sup>2</sup>) is your answer.\n\n"
@@ -1,16 +1,15 @@
1
1
  ---
2
2
  :id: 427
3
3
  :name: n-sequences
4
- :url: http://projecteuler.net/problem=427
5
- :content: "A sequence of integers S = {s<sub><var>i</var></sub>} is called an <var>n-sequence</var>
6
- if it has <var>n</var> elements and each element s<sub><var>i</var></sub> satisfies
7
- 1 ![≤]({{ images_dir }}/symbol_le.gif) s<sub><var>i</var></sub> ![≤]({{ images_dir
8
- }}/symbol_le.gif) <var>n</var>. Thus there are <var>n</var><sup><var>n</var></sup>
9
- distinct <var>n</var>-sequences in total.\rFor example, the sequence S = {1, 5,
10
- 5, 10, 7, 7, 7, 2, 3, 7} is a 10-sequence.\n\nFor any sequence S, let L(S) be the
11
- length of the longest contiguous subsequence of S with the same value.\rFor example,
12
- for the given sequence S above, L(S) = 3, because of the three consecutive 7's.\n\nLet
13
- <var>f</var>(<var>n</var>) = ![∑]({{ images_dir }}/symbol_sum.gif) L(S) for all
14
- <var>n</var>-sequences S.\n\nFor example, <var>f</var>(3) = 45, <var>f</var>(7)
15
- = 1403689 and <var>f</var>(11) = 481496895121.\n\nFind <var>f</var>(7 500 000) mod
16
- 1 000 000 009.\n\n"
4
+ :url: https://projecteuler.net/problem=427
5
+ :content: |+
6
+ A sequence of integers S = {s<sub><var>i</var></sub>} is called an <var>n-sequence</var> if it has <var>n</var> elements and each element s<sub><var>i</var></sub> satisfies 1 ≤ s<sub><var>i</var></sub> ≤ <var>n</var>. Thus there are <var>n</var><sup><var>n</var></sup> distinct <var>n</var>-sequences in total. For example, the sequence S = {1, 5, 5, 10, 7, 7, 7, 2, 3, 7} is a 10-sequence.
7
+
8
+ For any sequence S, let L(S) be the length of the longest contiguous subsequence of S with the same value. For example, for the given sequence S above, L(S) = 3, because of the three consecutive 7's.
9
+
10
+ Let <var>f</var>(<var>n</var>) = L(S) for all <var>n</var>-sequences S.
11
+
12
+ For example, <var>f</var>(3) = 45, <var>f</var>(7) = 1403689 and <var>f</var>(11) = 481496895121.
13
+
14
+ Find <var>f</var>(7&nbsp;500&nbsp;000) mod 1&nbsp;000&nbsp;000&nbsp;009.
15
+
@@ -1,25 +1,22 @@
1
1
  ---
2
2
  :id: 428
3
3
  :name: Necklace of circles
4
- :url: http://projecteuler.net/problem=428
5
- :content: "Let <var>a</var>, <var>b</var> and <var>c</var> be positive numbers. \n\rLet
4
+ :url: https://projecteuler.net/problem=428
5
+ :content: "Let <var>a</var>, <var>b</var> and <var>c</var> be positive numbers. \nLet
6
6
  W, X, Y, Z be four collinear points where |WX| = <var>a</var>, |XY| = <var>b</var>,
7
- |YZ| = <var>c</var> and |WZ| = <var>a</var> + <var>b</var> + <var>c</var>. \n\rLet
8
- C<sub>in</sub> be the circle having the diameter XY. \n\rLet C<sub>out</sub> be
9
- the circle having the diameter WZ.\n\nThe triplet (<var>a</var>, <var>b</var>, <var>c</var>)
10
- is called a _necklace triplet_ if you can place <var>k</var> ![]({{ images_dir
11
- }}/symbol_ge.gif) 3 distinct circles C<sub>1</sub>, C<sub>2</sub>, ..., C<sub><var>k</var></sub>
12
- such that:\n\n- C<sub><var>i</var></sub> has no common interior points with any
13
- C<sub><var>j</var></sub> for 1 ![≤]({{ images_dir }}/symbol_le.gif) <var>i</var>,
14
- <var>j</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>k</var> and <var>i</var>
15
- ![≠]({{ images_dir }}/symbol_ne.gif) <var>j</var>,\r\n- C<sub><var>i</var></sub>
16
- is tangent to both C<sub>in</sub> and C<sub>out</sub> for 1 ![≤]({{ images_dir }}/symbol_le.gif)
17
- <var>i</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>k</var>,\r\n- C<sub><var>i</var></sub>
18
- is tangent to C<sub><var>i</var>+1</sub> for 1 ![≤]({{ images_dir }}/symbol_le.gif)
19
- <var>i</var> k, and\r\n- C<sub><var>k</var></sub> is tangent to C<sub>1</sub>.\r\n\nFor
7
+ |YZ| = <var>c</var> and |WZ| = <var>a</var> + <var>b</var> + <var>c</var>. \nLet
8
+ C<sub>in</sub> be the circle having the diameter XY. \nLet C<sub>out</sub> be the
9
+ circle having the diameter WZ.\n\nThe triplet (<var>a</var>, <var>b</var>, <var>c</var>)
10
+ is called a _necklace triplet_ if you can place <var>k</var> ≥ 3 distinct circles
11
+ C<sub>1</sub>, C<sub>2</sub>, ..., C<sub><var>k</var></sub> such that:\n\n- C<sub><var>i</var></sub>
12
+ has no common interior points with any C<sub><var>j</var></sub> for 1 <var>i</var>,
13
+ <var>j</var> <var>k</var> and <var>i</var> <var>j</var>,\n- C<sub><var>i</var></sub>
14
+ is tangent to both C<sub>in</sub> and C<sub>out</sub> for 1 ≤ <var>i</var> <var>k</var>,\n-
15
+ C<sub><var>i</var></sub> is tangent to C<sub><var>i</var>+1</sub> for 1 ≤ <var>i</var>
16
+ \\< <var>k</var>, and\n- C<sub><var>k</var></sub> is tangent to C<sub>1</sub>.\n\nFor
20
17
  example, (5, 5, 5) and (4, 3, 21) are necklace triplets, while it can be shown that
21
- (2, 2, 5) is not.\n\n![]({{ images_dir }}/p428_necklace.png)\n\nLet T(<var>n</var>)
22
- be the number of necklace triplets (<var>a</var>, <var>b</var>, <var>c</var>) such
23
- that <var>a</var>, <var>b</var> and <var>c</var> are positive integers, and <var>b</var>
24
- ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var>.\rFor example, T(1) = 9, T(20) = 732
25
- and T(3000) = 438106.\n\nFind T(1 000 000 000).\n\n"
18
+ (2, 2, 5) is not.\n\n![p428_necklace.png]({{ images_dir }}/p428_necklace.png)\n\nLet
19
+ T(<var>n</var>) be the number of necklace triplets (<var>a</var>, <var>b</var>,
20
+ <var>c</var>) such that <var>a</var>, <var>b</var> and <var>c</var> are positive
21
+ integers, and <var>b</var> <var>n</var>. For example, T(1)&nbsp;=&nbsp;9, T(20)&nbsp;=&nbsp;732
22
+ and T(3000)&nbsp;=&nbsp;438106.\n\nFind T(1&nbsp;000&nbsp;000&nbsp;000).\n\n"
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  :id: 429
3
3
  :name: Sum of squares of unitary divisors
4
- :url: http://projecteuler.net/problem=429
4
+ :url: https://projecteuler.net/problem=429
5
5
  :content: "A unitary divisor <var>d</var> of a number <var>n</var> is a divisor of
6
- <var>n</var> that has the property gcd(<var>d, n/d</var>) = 1. \n\rThe unitary
7
- divisors of 4! = 24 are 1, 3, 8 and 24. \n\rThe sum of their squares is 1<sup>2</sup>
8
- + 3<sup>2</sup> + 8<sup>2</sup> + 24<sup>2</sup> = 650.\n\nLet S(<var>n</var>) represent
9
- the sum of the squares of the unitary divisors of <var>n</var>. Thus S(4!)=650.\n\nFind
6
+ <var>n</var> that has the property gcd(<var>d, n/d</var>) = 1. \nThe unitary divisors
7
+ of 4! = 24 are 1, 3, 8 and 24. \nThe sum of their squares is 1<sup>2</sup> + 3<sup>2</sup>
8
+ + 8<sup>2</sup> + 24<sup>2</sup> = 650.\n\nLet S(<var>n</var>) represent the sum
9
+ of the squares of the unitary divisors of <var>n</var>. Thus S(4!)=650.\n\nFind
10
10
  S(100 000 000!) modulo 1 000 000 009.\n\n"
data/data/problems/43.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 43
3
3
  :name: Sub-string divisibility
4
- :url: http://projecteuler.net/problem=43
4
+ :url: https://projecteuler.net/problem=43
5
5
  :content: |+
6
6
  The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property.
7
7
 
@@ -1,17 +1,16 @@
1
1
  ---
2
2
  :id: 430
3
3
  :name: Range flips
4
- :url: http://projecteuler.net/problem=430
4
+ :url: https://projecteuler.net/problem=430
5
5
  :content: "<var>N</var> disks are placed in a row, indexed 1 to <var>N</var> from
6
- left to right. \n\rEach disk has a black side and white side. Initially all disks
6
+ left to right. \nEach disk has a black side and white side. Initially all disks
7
7
  show their white side.\n\nAt each turn, two, not necessarily distinct, integers
8
8
  <var>A</var> and <var>B</var> between 1 and <var>N</var> (inclusive) are chosen
9
- uniformly at random. \n\rAll disks with an index from <var>A</var> to <var>B</var>
9
+ uniformly at random. \nAll disks with an index from <var>A</var> to <var>B</var>
10
10
  (inclusive) are flipped.\n\nThe following example shows the case <var>N</var> =
11
11
  8. At the first turn <var>A</var> = 5 and <var>B</var> = 2, and at the second turn
12
- <var>A</var> = 4 and <var>B</var> = 6.\n\n![]({{ images_dir }}/p_430_flips.gif)\n\nLet
12
+ <var>A</var> = 4 and <var>B</var> = 6.\n\n![p430_flips.gif]({{ images_dir }}/p430_flips.gif)\n\nLet
13
13
  E(<var>N</var>, <var>M</var>) be the expected number of disks that show their white
14
- side after <var>M</var> turns. \n\rWe can verify that E(3, 1) = 10/9, E(3, 2) =
15
- 5/3, E(10, 4) ![]({{ images_dir }}/symbol_asymp.gif) 5.157 and E(100, 10) ![]({{
16
- images_dir }}/symbol_asymp.gif) 51.893.\n\nFind E(10<sup>10</sup>, 4000). \n\rGive
14
+ side after <var>M</var> turns. \nWe can verify that E(3, 1) = 10/9, E(3, 2) = 5/3,
15
+ E(10, 4) ≈ 5.157 and E(100, 10) ≈ 51.893.\n\nFind E(10<sup>10</sup>, 4000). \nGive
17
16
  your answer rounded to 2 decimal places behind the decimal point.\n\n"
data/data/problems/44.yml CHANGED
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  :id: 44
3
3
  :name: Pentagon numbers
4
- :url: http://projecteuler.net/problem=44
4
+ :url: https://projecteuler.net/problem=44
5
5
  :content: |+
6
- Pentagonal numbers are generated by the formula, P<sub><var>n</var></sub>=<var>n</var>(3<var>n</var> ![−]({{ images_dir }}/symbol_minus.gif)1)/2. The first ten pentagonal numbers are:
6
+ Pentagonal numbers are generated by the formula, P<sub><var>n</var></sub>=<var>n</var>(3<var>n</var>−1)/2. The first ten pentagonal numbers are:
7
7
 
8
8
  1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ...
9
9
 
10
- It can be seen that P<sub>4</sub> + P<sub>7</sub> = 22 + 70 = 92 = P<sub>8</sub>. However, their difference, 70 ![]({{ images_dir }}/symbol_minus.gif) 22 = 48, is not pentagonal.
10
+ It can be seen that P<sub>4</sub> + P<sub>7</sub> = 22 + 70 = 92 = P<sub>8</sub>. However, their difference, 70 − 22 = 48, is not pentagonal.
11
11
 
12
- Find the pair of pentagonal numbers, P<sub><var>j</var></sub> and P<sub><var>k</var></sub>, for which their sum and difference are pentagonal and D = |P<sub><var>k</var></sub> ![]({{ images_dir }}/symbol_minus.gif) P<sub><var>j</var></sub>| is minimised; what is the value of D?
12
+ Find the pair of pentagonal numbers, P<sub><var>j</var></sub> and P<sub><var>k</var></sub>, for which their sum and difference are pentagonal and D = |P<sub><var>k</var></sub> − P<sub><var>j</var></sub>| is minimised; what is the value of D?
13
13
 
data/data/problems/45.yml CHANGED
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  :id: 45
3
3
  :name: Triangular, pentagonal, and hexagonal
4
- :url: http://projecteuler.net/problem=45
4
+ :url: https://projecteuler.net/problem=45
5
5
  :content: |+
6
6
  Triangle, pentagonal, and hexagonal numbers are generated by the following formulae:
7
7
 
8
- | Triangle |   | T<sub><i>n</i></sub>=_n_(_n_+1)/2 |   | 1, 3, 6, 10, 15, ... |
9
- | Pentagonal |   | P<sub><i>n</i></sub>=_n_(3_n_ ![]({{ images_dir }}/symbol_minus.gif)1)/2 |   | 1, 5, 12, 22, 35, ... |
10
- | Hexagonal |   | H<sub><i>n</i></sub>=_n_(2_n_ ![]({{ images_dir }}/symbol_minus.gif)1) |   | 1, 6, 15, 28, 45, ... |
8
+ | Triangle | &nbsp; | T<sub><i>n</i></sub>=_n_(_n_+1)/2 | &nbsp; | 1, 3, 6, 10, 15, ... |
9
+ | Pentagonal | &nbsp; | P<sub><i>n</i></sub>=_n_(3_n_−1)/2 | &nbsp; | 1, 5, 12, 22, 35, ... |
10
+ | Hexagonal | &nbsp; | H<sub><i>n</i></sub>=_n_(2_n_−1) | &nbsp; | 1, 6, 15, 28, 45, ... |
11
11
 
12
12
  It can be verified that T<sub>285</sub> = P<sub>165</sub> = H<sub>143</sub> = 40755.
13
13
 
data/data/problems/46.yml CHANGED
@@ -1,13 +1,10 @@
1
1
  ---
2
2
  :id: 46
3
3
  :name: Goldbach's other conjecture
4
- :url: http://projecteuler.net/problem=46
4
+ :url: https://projecteuler.net/problem=46
5
5
  :content: "It was proposed by Christian Goldbach that every odd composite number can
6
- be written as the sum of a prime and twice a square.\n\n9 = 7 + 2 ![×]({{ images_dir
7
- }}/symbol_times.gif)1<sup>2</sup> \n\r15 = 7 + 2 ![×]({{ images_dir }}/symbol_times.gif)2<sup>2</sup>
8
- \ \n\r21 = 3 + 2 ![×]({{ images_dir }}/symbol_times.gif)3<sup>2</sup> \n\r25 =
9
- 7 + 2 ![×]({{ images_dir }}/symbol_times.gif)3<sup>2</sup> \n\r27 = 19 + 2 ![×]({{
10
- images_dir }}/symbol_times.gif)2<sup>2</sup> \n\r33 = 31 + 2 ![×]({{ images_dir
11
- }}/symbol_times.gif)1<sup>2</sup>\n\nIt turns out that the conjecture was false.\n\nWhat
12
- is the smallest odd composite that cannot be written as the sum of a prime and twice
13
- a square?\n\n"
6
+ be written as the sum of a prime and twice a square.\n\n9 = 7 + 2×1<sup>2</sup>
7
+ \ \n15 = 7 + 2×2<sup>2</sup> \n21 = 3 + 2×3<sup>2</sup> \n25 = 7 + 2×3<sup>2</sup>
8
+ \ \n27 = 19 + 2×2<sup>2</sup> \n33 = 31 + 2×1<sup>2</sup>\n\nIt turns out that
9
+ the conjecture was false.\n\nWhat is the smallest odd composite that cannot be written
10
+ as the sum of a prime and twice a square?\n\n"
data/data/problems/47.yml CHANGED
@@ -1,12 +1,9 @@
1
1
  ---
2
2
  :id: 47
3
3
  :name: Distinct primes factors
4
- :url: http://projecteuler.net/problem=47
4
+ :url: https://projecteuler.net/problem=47
5
5
  :content: "The first two consecutive numbers to have two distinct prime factors are:\n\n14
6
- = 2 ![×]({{ images_dir }}/symbol_times.gif) 7 \n15 = 3 ![×]({{ images_dir }}/symbol_times.gif)
7
- 5\n\nThe first three consecutive numbers to have three distinct prime factors are:\n\n644
8
- = ![×]({{ images_dir }}/symbol_times.gif) 7 ![×]({{ images_dir }}/symbol_times.gif)
9
- 23 \n645 = 3 ![×]({{ images_dir }}/symbol_times.gif) 5 ![×]({{ images_dir }}/symbol_times.gif)
10
- 43 \n646 = 2 ![×]({{ images_dir }}/symbol_times.gif) 17 ![×]({{ images_dir }}/symbol_times.gif)
11
- 19.\n\nFind the first four consecutive integers to have four distinct prime factors.
12
- What is the first of these numbers?\n\n"
6
+ = 2 × 7 \n15 = 3 × 5\n\nThe first three consecutive numbers to have three distinct
7
+ prime factors are:\n\n644 = × 7 × 23 \n645 = 3 × 5 × 43 \n646 = 2 × 17 × 19.\n\nFind
8
+ the first four consecutive integers to have four distinct prime factors. What is
9
+ the first of these numbers?\n\n"
data/data/problems/48.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 48
3
3
  :name: Self powers
4
- :url: http://projecteuler.net/problem=48
4
+ :url: https://projecteuler.net/problem=48
5
5
  :content: |+
6
6
  The series, 1<sup>1</sup> + 2<sup>2</sup> + 3<sup>3</sup> + ... + 10<sup>10</sup> = 10405071317.
7
7
 
data/data/problems/49.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 49
3
3
  :name: Prime permutations
4
- :url: http://projecteuler.net/problem=49
4
+ :url: https://projecteuler.net/problem=49
5
5
  :content: |+
6
6
  The arithmetic sequence, 1487, 4817, 8147, in which each of the terms increases by 3330, is unusual in two ways: (i) each of the three terms are prime, and, (ii) each of the 4-digit numbers are permutations of one another.
7
7
 
data/data/problems/5.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 5
3
3
  :name: Smallest multiple
4
- :url: http://projecteuler.net/problem=5
4
+ :url: https://projecteuler.net/problem=5
5
5
  :content: |+
6
6
  2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
7
7
 
data/data/problems/50.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 50
3
3
  :name: Consecutive prime sum
4
- :url: http://projecteuler.net/problem=50
4
+ :url: https://projecteuler.net/problem=50
5
5
  :content: |+
6
6
  The prime 41, can be written as the sum of six consecutive primes:
7
7
 
data/data/problems/51.yml CHANGED
@@ -1,10 +1,8 @@
1
1
  ---
2
2
  :id: 51
3
3
  :name: Prime digit replacements
4
- :url: http://projecteuler.net/problem=51
4
+ :url: https://projecteuler.net/problem=51
5
5
  :content: |+
6
- <!--<p>By replacing the 1<sup>st</sup> digit of *57, it turns out that six of the possible values: 157, 257, 457, 557, 757, and 857, are all prime.</p> -->
7
-
8
6
  By replacing the 1<sup>st</sup> digit of the 2-digit number \*3, it turns out that six of the nine possible values: 13, 23, 43, 53, 73, and 83, are all prime.
9
7
 
10
8
  By replacing the 3<sup>rd</sup> and 4<sup>th</sup> digits of 56\*\*3 with the same digit, this 5-digit number is the first example having seven primes among the ten generated numbers, yielding the family: 56003, 56113, 56333, 56443, 56663, 56773, and 56993. Consequently 56003, being the first member of this family, is the smallest prime with this property.
data/data/problems/52.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 52
3
3
  :name: Permuted multiples
4
- :url: http://projecteuler.net/problem=52
4
+ :url: https://projecteuler.net/problem=52
5
5
  :content: |+
6
6
  It can be seen that the number, 125874, and its double, 251748, contain exactly the same digits, but in a different order.
7
7
 
data/data/problems/53.yml CHANGED
@@ -1,18 +1,12 @@
1
1
  ---
2
2
  :id: 53
3
3
  :name: Combinatoric selections
4
- :url: http://projecteuler.net/problem=53
4
+ :url: https://projecteuler.net/problem=53
5
5
  :content: "There are exactly ten ways of selecting three from five, 12345:\n\n123,
6
6
  124, 125, 134, 135, 145, 234, 235, 245, and 345\n\nIn combinatorics, we use the
7
7
  notation, <sup>5</sup>C<sub>3</sub> = 10.\n\nIn general,\n\n| <sup><var>n</var></sup>C<sub><var>r</var></sub>
8
- = | \n<var>n</var>! \n<var>r</var>!(<var>n<img src=\"%7B%7B%20images_dir%20%7D%7D/symbol_minus.gif\"
9
- width=\"9\" height=\"3\" alt=\"−\" border=\"0\" style=\"vertical-align:middle;\">r</var>)!\n
10
- | ,where <var>r</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var>, <var>n</var>!
11
- = <var>n</var> ![×]({{ images_dir }}/symbol_times.gif)(<var>n</var> ![−]({{ images_dir
12
- }}/symbol_minus.gif)1) ![×]({{ images_dir }}/symbol_times.gif)... ![×]({{ images_dir
13
- }}/symbol_times.gif)3 ![×]({{ images_dir }}/symbol_times.gif)2 ![×]({{ images_dir
14
- }}/symbol_times.gif)1, and 0! = 1. |\n\nIt is not until <var>n</var> = 23, that
15
- a value exceeds one-million: <sup>23</sup>C<sub>10</sub> = 1144066.\n\nHow many,
16
- not necessarily distinct, values of  <sup><var>n</var></sup>C<sub><var>r</var></sub>,
17
- for 1 ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var> ![≤]({{ images_dir }}/symbol_le.gif)
18
- 100, are greater than one-million?\n\n"
8
+ = | \n<var>n</var>! \n<var>r</var>!(<var>n−r</var>)!\n | ,where <var>r</var>
9
+ <var>n</var>, <var>n</var>! = <var>n</var>×(<var>n</var>−1)×...×3×2×1, and 0! =
10
+ 1. |\n\nIt is not until <var>n</var> = 23, that a value exceeds one-million: <sup>23</sup>C<sub>10</sub>
11
+ = 1144066.\n\nHow many, not necessarily distinct, values of &nbsp;<sup><var>n</var></sup>C<sub><var>r</var></sub>,
12
+ for 1 <var>n</var> 100, are greater than one-million?\n\n"
data/data/problems/54.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 54
3
3
  :name: Poker hands
4
- :url: http://projecteuler.net/problem=54
4
+ :url: https://projecteuler.net/problem=54
5
5
  :content: "In the card game poker, a hand consists of five cards and are ranked, from
6
6
  lowest to highest, in the following way:\n\n- **High Card** : Highest value card.\n-
7
7
  **One Pair** : Two cards of the same value.\n- **Two Pairs** : Two different pairs.\n-
@@ -16,18 +16,19 @@
16
16
  for example, both players have a pair of queens, then highest cards in each hand
17
17
  are compared (see example 4 below); if the highest cards tie then the next highest
18
18
  cards are compared, and so on.\n\nConsider the following five hands dealt to two
19
- players:\n\n| **Hand** |   | **Player 1** |   | **Player 2** |   | **Winner** |\n|
20
- **1** |   | 5H 5C 6S 7S KD \n\nPair of Fives\n |   | 2C 3S 8S 8D TD \n\nPair of
21
- Eights\n |   | Player 2 |\n| **2** |   | 5D 8C 9S JS AC \n\nHighest card Ace\n
22
- |   | 2C 5C 7D 8S QH \n\nHighest card Queen\n |   | Player 1 |\n| **3** |   | 2D
23
- 9C AS AH AC \n\nThree Aces\n |   | 3D 6D 7D TD QD \n\nFlush with Diamonds\n |
24
-   | Player 2 |\n| **4** |   | 4D 6S 9H QH QC \n\nPair of Queens \nHighest card
25
- Nine\n |   | 3D 6D 7H QD QS \n\nPair of Queens \nHighest card Seven\n |   | Player
26
- 1 |\n| **5** |   | 2H 2D 4C 4D 4S \n\nFull House \nWith Three Fours\n |   | 3C
27
- 3D 3S 9S 9D \n\nFull House \nwith Three Threes\n |   | Player 1 |\n\nThe file,
28
- [poker.txt](project/poker.txt), contains one-thousand random hands dealt to two
29
- players. Each line of the file contains ten cards (separated by a single space):
30
- the first five are Player 1's cards and the last five are Player 2's cards. You
31
- can assume that all hands are valid (no invalid characters or repeated cards), each
32
- player's hand is in no specific order, and in each hand there is a clear winner.\n\nHow
33
- many hands does Player 1 win?\n\n"
19
+ players:\n\n| **Hand** | &nbsp; | **Player 1** | &nbsp; | **Player 2** | &nbsp;
20
+ | **Winner** |\n| **1** | &nbsp; | 5H 5C 6S 7S KD \n\nPair of Fives\n | &nbsp;
21
+ | 2C 3S 8S 8D TD \n\nPair of Eights\n | &nbsp; | Player 2 |\n| **2** | &nbsp; |
22
+ 5D 8C 9S JS AC \n\nHighest card Ace\n | &nbsp; | 2C 5C 7D 8S QH \n\nHighest card
23
+ Queen\n | &nbsp; | Player 1 |\n| **3** | &nbsp; | 2D 9C AS AH AC \n\nThree Aces\n
24
+ | &nbsp; | 3D 6D 7D TD QD \n\nFlush with Diamonds\n | &nbsp; | Player 2 |\n| **4**
25
+ | &nbsp; | 4D 6S 9H QH QC \n\nPair of Queens \nHighest card Nine\n | &nbsp; |
26
+ 3D 6D 7H QD QS \n\nPair of Queens \nHighest card Seven\n | &nbsp; | Player 1 |\n|
27
+ **5** | &nbsp; | 2H 2D 4C 4D 4S \n\nFull House \nWith Three Fours\n | &nbsp; |
28
+ 3C 3D 3S 9S 9D \n\nFull House \nwith Three Threes\n | &nbsp; | Player 1 |\n\nThe
29
+ file, [poker.txt](project/resources/p054_poker.txt), contains one-thousand random
30
+ hands dealt to two players. Each line of the file contains ten cards (separated
31
+ by a single space): the first five are Player 1's cards and the last five are Player
32
+ 2's cards. You can assume that all hands are valid (no invalid characters or repeated
33
+ cards), each player's hand is in no specific order, and in each hand there is a
34
+ clear winner.\n\nHow many hands does Player 1 win?\n\n"
data/data/problems/55.yml CHANGED
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  :id: 55
3
3
  :name: Lychrel numbers
4
- :url: http://projecteuler.net/problem=55
4
+ :url: https://projecteuler.net/problem=55
5
5
  :content: "If we take 47, reverse and add, 47 + 74 = 121, which is palindromic.\n\nNot
6
- all numbers produce palindromes so quickly. For example,\n\n349 + 943 = 1292, \n\r1292
7
- + 2921 = 4213 \n\r4213 + 3124 = 7337\n\nThat is, 349 took three iterations to arrive
6
+ all numbers produce palindromes so quickly. For example,\n\n349 + 943 = 1292, \n1292
7
+ + 2921 = 4213 \n4213 + 3124 = 7337\n\nThat is, 349 took three iterations to arrive
8
8
  at a palindrome.\n\nAlthough no one has proved it yet, it is thought that some numbers,
9
9
  like 196, never produce a palindrome. A number that never forms a palindrome through
10
10
  the reverse and add process is called a Lychrel number. Due to the theoretical nature