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,24 @@
1
1
  ---
2
2
  :id: 316
3
3
  :name: Numbers in decimal expansions
4
- :url: http://projecteuler.net/problem=316
4
+ :url: https://projecteuler.net/problem=316
5
5
  :content: "Let <var>p</var> = <var>p<sub><font size=\"-2\">1</font></sub> p<sub><font
6
6
  size=\"-2\">2</font></sub> p<sub><font size=\"-2\">3</font></sub></var> ... be an
7
7
  infinite sequence of random digits, selected from {0,1,2,3,4,5,6,7,8,9} with equal
8
- probability. \n\rIt can be seen that <var>p</var> corresponds to the real number
8
+ probability. \nIt can be seen that <var>p</var> corresponds to the real number
9
9
  0.<var>p<sub><font size=\"-2\">1</font></sub> p<sub><font size=\"-2\">2</font></sub>
10
- p<sub><font size=\"-2\">3</font></sub></var> .... \n\rIt can also be seen that
11
- choosing a random real number from the interval [0,1) is equivalent to choosing
12
- an infinite sequence of random digits selected from {0,1,2,3,4,5,6,7,8,9} with equal
13
- probability.\n\nFor any positive integer <var>n</var> with <var>d</var> decimal
14
- digits, let <var>k</var> be the smallest index such that \n <var>p<sub><small>k</small>,
15
- </sub></var><var>p<sub><small>k+1</small></sub></var>, ...<var>p<sub><small>k+d-1</small></sub></var>
16
- are the decimal digits of <var>n</var>, in the same order. \n\rAlso, let <var>g</var>(<var>n</var>)
17
- be the expected value of <var>k</var>; it can be proven that <var>g</var>(<var>n</var>)
18
- is always finite and, interestingly, always an integer number.\n\nFor example, if
19
- <var>n</var> = 535, then \n\rfor <var>p</var> = 31415926 **535** 897...., we get
20
- <var>k</var> = 9 \n\rfor <var>p</var> = 35528714365004956000049084876408468 **535**
21
- 4..., we get <var>k</var> = 36 \n\retc and we find that <var>g</var>(535) = 1008.\n\nGiven
22
- that ![]({{ images_dir }}/p_316_decexp1.gif), find ![]({{ images_dir }}/p_316_decexp2.gif)\n\n<u><i>Note</i></u>:
23
- ![]({{ images_dir }}/p_316_decexp3.gif) represents the floor function.\r\n"
10
+ p<sub><font size=\"-2\">3</font></sub></var> .... \nIt can also be seen that choosing
11
+ a random real number from the interval [0,1) is equivalent to choosing an infinite
12
+ sequence of random digits selected from {0,1,2,3,4,5,6,7,8,9} with equal probability.\n\nFor
13
+ any positive integer <var>n</var> with <var>d</var> decimal digits, let <var>k</var>
14
+ be the smallest index such that \n<var>p<sub><small>k</small>, </sub></var><var>p<sub><small>k+1</small></sub></var>,
15
+ ...<var>p<sub><small>k+d-1</small></sub></var> are the decimal digits of <var>n</var>,
16
+ in the same order. \nAlso, let <var>g</var>(<var>n</var>) be the expected value
17
+ of <var>k</var>; it can be proven that <var>g</var>(<var>n</var>) is always finite
18
+ and, interestingly, always an integer number.\n\nFor example, if <var>n</var> =
19
+ 535, then \nfor <var>p</var> = 31415926 **535** 897...., we get <var>k</var> =
20
+ 9 \nfor <var>p</var> = 35528714365004956000049084876408468 **535** 4..., we get
21
+ <var>k</var> = 36 \netc and we find that <var>g</var>(535) = 1008.\n\nGiven that
22
+ ![p316_decexp1.gif]({{ images_dir }}/p316_decexp1.gif), find ![p316_decexp2.gif]({{
23
+ images_dir }}/p316_decexp2.gif)\n\n<u><i>Note</i></u>: ![p316_decexp3.gif]({{ images_dir
24
+ }}/p316_decexp3.gif) represents the floor function.\n"
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  :id: 317
3
3
  :name: Firecracker
4
- :url: http://projecteuler.net/problem=317
5
- :content: "A firecracker explodes at a height of 100 m above level ground. It breaks
6
- into a large number of very small fragments, which move in every direction; all
7
- of them have the same initial velocity of 20 m/s.\n\nWe assume that the fragments
8
- move without air resistance, in a uniform gravitational field with g=9.81 m/s<sup>2</sup>.\n\nFind
9
- the volume (in m<sup>3</sup>) of the region through which the fragments move before
10
- reaching the ground. \rGive your answer rounded to four decimal places.\n\n"
4
+ :url: https://projecteuler.net/problem=317
5
+ :content: |+
6
+ A firecracker explodes at a height of 100 m above level ground. It breaks into a large number of very small fragments, which move in every direction; all of them have the same initial velocity of 20 m/s.
7
+
8
+ We assume that the fragments move without air resistance, in a uniform gravitational field with g=9.81 m/s<sup>2</sup>.
9
+
10
+ Find the volume (in m<sup>3</sup>) of the region through which the fragments move before reaching the ground. Give your answer rounded to four decimal places.
11
+
@@ -1,32 +1,17 @@
1
1
  ---
2
2
  :id: 318
3
3
  :name: 2011 nines
4
- :url: http://projecteuler.net/problem=318
5
- :content: "Consider the real number ![]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{
6
- images_dir }}/symbol_radic.gif)3. \n\rWhen we calculate the even powers of ![]({{
7
- images_dir }}/symbol_radic.gif)2+ ![√]({{ images_dir }}/symbol_radic.gif)3\rwe get:
8
- \ \n\r( ![]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{ images_dir }}/symbol_radic.gif)3)<sup>2</sup>
9
- = 9.898979485566356... \n\r( ![]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{
10
- images_dir }}/symbol_radic.gif)3)<sup>4</sup> = 97.98979485566356... \n\r( ![√]({{
11
- images_dir }}/symbol_radic.gif)2+ ![√]({{ images_dir }}/symbol_radic.gif)3)<sup>6</sup>
12
- = 969.998969071069263... \n\r( ![√]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{
13
- images_dir }}/symbol_radic.gif)3)<sup>8</sup> = 9601.99989585502907... \n\r( ![]({{
14
- images_dir }}/symbol_radic.gif)2+ ![√]({{ images_dir }}/symbol_radic.gif)3)<sup>10</sup>
15
- = 95049.999989479221... \n\r( ![√]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{
16
- images_dir }}/symbol_radic.gif)3)<sup>12</sup> = 940897.9999989371855... \n\r(
17
- ![√]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{ images_dir }}/symbol_radic.gif)3)<sup>14</sup>
18
- = 9313929.99999989263... \n\r( ![√]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{
19
- images_dir }}/symbol_radic.gif)3)<sup>16</sup> = 92198401.99999998915...\n\nIt looks
20
- like that the number of consecutive nines at the beginning of the fractional part
21
- of these powers is non-decreasing. \n\rIn fact it can be proven that the fractional
22
- part of ( ![√]({{ images_dir }}/symbol_radic.gif)2+ ![√]({{ images_dir }}/symbol_radic.gif)3)<sup>2n</sup>
23
- approaches 1 for large n.\n\nConsider all real numbers of the form ![√]({{ images_dir
24
- }}/symbol_radic.gif)p+ ![√]({{ images_dir }}/symbol_radic.gif)q with p and q positive
25
- integers and p ![<]({{ images_dir }}/symbol_lt.gif)q, such that the fractional part
26
- \rof ( ![√]({{ images_dir }}/symbol_radic.gif)p+ ![√]({{ images_dir }}/symbol_radic.gif)q)<sup>2n</sup>
27
- approaches 1 for large n.\n\nLet C(p,q,n) be the number of consecutive nines at
28
- the beginning of the fractional part of \n ( ![√]({{ images_dir }}/symbol_radic.gif)p+
29
- ![√]({{ images_dir }}/symbol_radic.gif)q)<sup>2n</sup>.\n\nLet N(p,q) be the minimal
30
- value of n such that C(p,q,n) ![≥]({{ images_dir }}/symbol_ge.gif) 2011.\n\nFind
31
- ![∑]({{ images_dir }}/symbol_sum.gif)N(p,q) for p+q ![≤]({{ images_dir }}/symbol_le.gif)
32
- 2011.\n\n"
4
+ :url: https://projecteuler.net/problem=318
5
+ :content: "Consider the real number √2+√3. \nWhen we calculate the even powers of
6
+ √2+√3 we get: \n(√2+√3)<sup>2</sup> = 9.898979485566356... \n(2+√3)<sup>4</sup>
7
+ = 97.98979485566356... \n(√2+√3)<sup>6</sup> = 969.998969071069263... \n(√2+√3)<sup>8</sup>
8
+ = 9601.99989585502907... \n(√2+√3)<sup>10</sup> = 95049.999989479221... \n(√2+√3)<sup>12</sup>
9
+ = 940897.9999989371855... \n(√2+√3)<sup>14</sup> = 9313929.99999989263... \n(√2+√3)<sup>16</sup>
10
+ = 92198401.99999998915...\n\nIt looks like that the number of consecutive nines
11
+ at the beginning of the fractional part of these powers is non-decreasing. \nIn
12
+ fact it can be proven that the fractional part of (√2+√3)<sup>2n</sup> approaches
13
+ 1 for large n.\n\nConsider all real numbers of the form p+√q with p and q positive
14
+ integers and p\\<q, such that the fractional part of (√p+√q)<sup>2n</sup> approaches
15
+ 1 for large n.\n\nLet C(p,q,n) be the number of consecutive nines at the beginning
16
+ of the fractional part of \n (√p+√q)<sup>2n</sup>.\n\nLet N(p,q) be the minimal
17
+ value of n such that C(p,q,n) 2011.\n\nFind ∑N(p,q) for p+q 2011.\n\n"
@@ -1,18 +1,16 @@
1
1
  ---
2
2
  :id: 319
3
3
  :name: Bounded Sequences
4
- :url: http://projecteuler.net/problem=319
4
+ :url: https://projecteuler.net/problem=319
5
5
  :content: "Let <var>x</var><sub>1</sub>, <var>x</var><sub>2</sub>,..., <var>x<sub>n</sub></var>
6
6
  be a sequence of length <var>n</var> such that:\n\n- <var>x</var><sub>1</sub> =
7
- 2\n- for all 1 ![<]({{ images_dir }}/symbol_lt.gif) <var>i</var> ![≤]({{ images_dir
8
- }}/symbol_le.gif) <var>n</var> : <var>x</var><sub><var>i</var>-<i>1</i></sub> ![<]({{
9
- images_dir }}/symbol_lt.gif) <var>x<sub>i</sub></var>\n- for all <var>i</var> and
10
- <var>j</var> with 1 ![≤]({{ images_dir }}/symbol_le.gif) <var>i</var>, <var>j</var>
11
- ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var> : (<var>x<sub>i</sub></var>)<var><sup>
12
- j</sup></var> ![<]({{ images_dir }}/symbol_lt.gif) (<var>x<sub>j</sub></var> + 1)<var><sup>i</sup></var>\n\nThere
13
- are only five such sequences of length 2, namely:\r{2,4}, {2,5}, {2,6}, {2,7} and
14
- {2,8}. \n\rThere are 293 such sequences of length 5; three examples are given below:
15
- \ \n\r{2,5,11,25,55}, {2,6,14,36,88}, {2,8,22,64,181}.\n\nLet <var>t</var>(<var>n</var>)
16
- denote the number of such sequences of length <var>n</var>. \n\rYou are given that
17
- <var>t</var>(10) = 86195 and <var>t</var>(20) = 5227991891.\n\nFind <var>t</var>(10<sup>10</sup>)
7
+ 2\n- for all 1 \\< <var>i</var> <var>n</var> : <var>x</var><sub><var>i</var>-<i>1</i></sub>
8
+ \\< <var>x<sub>i</sub></var>\n- for all <var>i</var> and <var>j</var> with 1 <var>i</var>,
9
+ <var>j</var> <var>n</var> : (<var>x<sub>i</sub></var>)<var><sup> j</sup></var>
10
+ \\< (<var>x<sub>j</sub></var> + 1)<var><sup>i</sup></var>\n\nThere are only five
11
+ such sequences of length 2, namely: {2,4}, {2,5}, {2,6}, {2,7} and {2,8}. \nThere
12
+ are 293 such sequences of length 5; three examples are given below: \n{2,5,11,25,55},
13
+ {2,6,14,36,88}, {2,8,22,64,181}.\n\nLet <var>t</var>(<var>n</var>) denote the number
14
+ of such sequences of length <var>n</var>. \nYou are given that <var>t</var>(10)
15
+ = 86195 and <var>t</var>(20) = 5227991891.\n\nFind <var>t</var>(10<sup>10</sup>)
18
16
  and give your answer modulo 10<sup>9</sup>.\n\n"
data/data/problems/32.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  :id: 32
3
3
  :name: Pandigital products
4
- :url: http://projecteuler.net/problem=32
4
+ :url: https://projecteuler.net/problem=32
5
5
  :content: |+
6
6
  We shall say that an <var>n</var>-digit number is pandigital if it makes use of all the digits 1 to <var>n</var> exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital.
7
7
 
8
- The product 7254 is unusual, as the identity, 39 ![×]({{ images_dir }}/symbol_times.gif) 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital.
8
+ The product 7254 is unusual, as the identity, 39 × 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital.
9
9
 
10
10
  Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  :id: 320
3
3
  :name: Factorials divisible by a huge integer
4
- :url: http://projecteuler.net/problem=320
4
+ :url: https://projecteuler.net/problem=320
5
5
  :content: |+
6
6
  Let N(<var>i</var>) be the smallest integer <var>n</var> such that <var>n</var>! is divisible by (<var>i</var>!)<sup>1234567890</sup>
7
7
 
8
- Let S(<var>u</var>)= ![∑]({{ images_dir }}/symbol_sum.gif)N(<var>i</var>) for 10 ![]({{ images_dir }}/symbol_le.gif) <var>i</var> ![]({{ images_dir }}/symbol_le.gif) <var>u</var>.
8
+ Let S(<var>u</var>)=∑N(<var>i</var>) for 10 ≤ <var>i</var> ≤ <var>u</var>.
9
9
 
10
10
  S(1000)=614538266565663.
11
11
 
@@ -1,17 +1,18 @@
1
1
  ---
2
2
  :id: 321
3
3
  :name: Swapping Counters
4
- :url: http://projecteuler.net/problem=321
4
+ :url: https://projecteuler.net/problem=321
5
5
  :content: "A horizontal row comprising of 2<var>n</var> + 1 squares has <var>n</var>
6
6
  red counters placed at one end and <var>n</var> blue counters at the other end,
7
7
  being separated by a single empty square in the centre. For example, when <var>n</var>
8
- = 3.\n\n ![]({{ images_dir }}/p_321_swapping_counters_1.gif)\n\nA counter can move
9
- from one square to the next (slide) or can jump over another counter (hop) as long
10
- as the square next to that counter is unoccupied.\n\n ![]({{ images_dir }}/p_321_swapping_counters_2.gif)\n\nLet
11
- M(<var>n</var>) represent the minimum number of moves/actions to completely reverse
12
- the positions of the coloured counters; that is, move all the red counters to the
13
- right and all the blue counters to the left.\n\nIt can be verified M(3) = 15, which
14
- also happens to be a triangle number.\n\nIf we create a sequence based on the values
15
- of <var>n</var> for which M(<var>n</var>) is a triangle number then the first five
16
- terms would be:\r \n1, 3, 10, 22, and 63, and their sum would be 99.\n\nFind the
17
- sum of the first forty terms of this sequence.\n\n"
8
+ = 3.\n\n ![p321_swapping_counters_1.gif]({{ images_dir }}/p321_swapping_counters_1.gif)\n\nA
9
+ counter can move from one square to the next (slide) or can jump over another counter
10
+ (hop) as long as the square next to that counter is unoccupied.\n\n ![p321_swapping_counters_2.gif]({{
11
+ images_dir }}/p321_swapping_counters_2.gif)\n\nLet M(<var>n</var>) represent the
12
+ minimum number of moves/actions to completely reverse the positions of the coloured
13
+ counters; that is, move all the red counters to the right and all the blue counters
14
+ to the left.\n\nIt can be verified M(3) = 15, which also happens to be a triangle
15
+ number.\n\nIf we create a sequence based on the values of <var>n</var> for which
16
+ M(<var>n</var>) is a triangle number then the first five terms would be: \n1, 3,
17
+ 10, 22, and 63, and their sum would be 99.\n\nFind the sum of the first forty terms
18
+ of this sequence.\n\n"
@@ -1,10 +1,9 @@
1
1
  ---
2
2
  :id: 322
3
3
  :name: Binomial coefficients divisible by 10
4
- :url: http://projecteuler.net/problem=322
4
+ :url: https://projecteuler.net/problem=322
5
5
  :content: "Let T(<var>m</var>, <var>n</var>) be the number of the binomial coefficients
6
6
  <sup><var>i</var></sup>C<sub><var>n</var></sub> that are divisible by 10 for <var>n</var>
7
- ![]({{ images_dir }}/symbol_le.gif) <var>i</var> ![<]({{ images_dir }}/symbol_lt.gif)
8
- <var>m</var>(<var>i</var>, <var>m</var> and <var>n</var> are positive integers).
9
- \ \n\rYou are given that T(10<sup>9</sup>, 10<sup>7</sup>-10) = 989697000.\n\nFind
10
- T(10<sup>18</sup>, 10<sup>12</sup>-10).\n\n"
7
+ <var>i</var> \\< <var>m</var>(<var>i</var>, <var>m</var> and <var>n</var> are
8
+ positive integers). \nYou are given that T(10<sup>9</sup>, 10<sup>7</sup>-10) =
9
+ 989697000.\n\nFind T(10<sup>18</sup>, 10<sup>12</sup>-10).\n\n"
@@ -1,15 +1,13 @@
1
1
  ---
2
2
  :id: 323
3
3
  :name: Bitwise-OR operations on random integers
4
- :url: http://projecteuler.net/problem=323
4
+ :url: https://projecteuler.net/problem=323
5
5
  :content: "Let <var>y</var><sub>0</sub>, <var>y</var><sub>1</sub>, <var>y</var><sub>2</sub>,...
6
- be a sequence of random unsigned 32 bit integers \n\r(i.e. 0 ![]({{ images_dir
7
- }}/symbol_le.gif) <var>y<sub>i</sub></var> ![<]({{ images_dir }}/symbol_lt.gif)
8
- 2<sup>32</sup>, every value equally likely).\n\nFor the sequence <var>x<sub>i</sub></var>
6
+ be a sequence of random unsigned 32 bit integers \n(i.e. 0 ≤ <var>y<sub>i</sub></var>
7
+ \\< 2<sup>32</sup>, every value equally likely).\n\nFor the sequence <var>x<sub>i</sub></var>
9
8
  the following recursion is given:\n\n- <var>x</var><sub>0</sub> = 0 and\n- <var>x<sub>i</sub></var>
10
9
  = <var>x</var><sub><var>i</var>-<i>1</i></sub> **|** <var>y</var><sub><var>i</var>-<i>1</i></sub>,
11
- for <var>i</var> ![>]({{ images_dir }}/symbol_gt.gif) 0. ( **|** is the bitwise-OR
12
- operator)\n\nIt can be seen that eventually there will be an index N such that <var>x<sub>i</sub></var>
13
- = 2<sup>32</sup> -1 (a bit-pattern of all ones) for all <var>i</var> ![]({{ images_dir
14
- }}/symbol_ge.gif) N.\n\nFind the expected value of N. \n\rGive your answer rounded
15
- to 10 digits after the decimal point.\n\n"
10
+ for <var>i</var> \\> 0. ( **|** is the bitwise-OR operator)\n\nIt can be seen that
11
+ eventually there will be an index N such that <var>x<sub>i</sub></var> = 2<sup>32</sup>
12
+ -1 (a bit-pattern of all ones) for all <var>i</var> ≥ N.\n\nFind the expected value
13
+ of N. \nGive your answer rounded to 10 digits after the decimal point.\n\n"
@@ -1,13 +1,11 @@
1
1
  ---
2
2
  :id: 324
3
3
  :name: Building a tower
4
- :url: http://projecteuler.net/problem=324
4
+ :url: https://projecteuler.net/problem=324
5
5
  :content: "Let <var>f</var>(<var>n</var>) represent the number of ways one can fill
6
- a 3 ![×]({{ images_dir }}/symbol_times.gif)3 ![×]({{ images_dir }}/symbol_times.gif)<var>n</var>
7
- tower with blocks of 2 ![×]({{ images_dir }}/symbol_times.gif)1 ![×]({{ images_dir
8
- }}/symbol_times.gif)1. \nYou're allowed to rotate the blocks in any way you like;
9
- however, rotations, reflections etc of the tower itself are counted as distinct.\n\nFor
10
- example (with <var>q</var> = 100000007) : \n<var>f</var>(2) = 229, \n<var>f</var>(4)
11
- = 117805, \n<var>f</var>(10) mod <var>q</var> = 96149360, \n<var>f</var>(10<sup>3</sup>)
12
- mod <var>q</var> = 24806056, \n<var>f</var>(10<sup>6</sup>) mod <var>q</var> =
13
- 30808124.\n\nFind <var>f</var>(10<sup>10000</sup>) mod 100000007.\n\n"
6
+ a 3×3×<var>n</var> tower with blocks of 2×1×1. \nYou're allowed to rotate the
7
+ blocks in any way you like; however, rotations, reflections etc of the tower itself
8
+ are counted as distinct.\n\nFor example (with <var>q</var> = 100000007) : \n<var>f</var>(2)
9
+ = 229, \n<var>f</var>(4) = 117805, \n<var>f</var>(10) mod <var>q</var> = 96149360,
10
+ \ \n<var>f</var>(10<sup>3</sup>) mod <var>q</var> = 24806056, \n<var>f</var>(10<sup>6</sup>)
11
+ mod <var>q</var> = 30808124.\n\nFind <var>f</var>(10<sup>10000</sup>) mod 100000007.\n\n"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 325
3
3
  :name: Stone Game II
4
- :url: http://projecteuler.net/problem=325
4
+ :url: https://projecteuler.net/problem=325
5
5
  :content: |+
6
6
  A game is played with two piles of stones and two players. At her turn, a player removes a number of stones from the larger pile. The number of stones she removes must be a positive multiple of the number of stones in the smaller pile.
7
7
 
@@ -13,7 +13,7 @@
13
13
 
14
14
  A _losing configuration_ is one where the second player can force a win, no matter what the first player does. For example, (2,3) and (3,4) are losing configurations: any legal move leaves a winning configuration for the second player.
15
15
 
16
- Define S(<var>N</var>) as the sum of (<var>x</var><sub><var>i</var></sub>+<var>y</var><sub><var>i</var></sub>) for all losing configurations (<var>x</var><sub><var>i</var></sub>,<var>y</var><sub><var>i</var></sub>), 0 ![<]({{ images_dir }}/symbol_lt.gif) <var>x</var><sub><var>i</var></sub> ![<]({{ images_dir }}/symbol_lt.gif) <var>y</var><sub><var>i</var></sub> ![]({{ images_dir }}/symbol_le.gif) <var>N</var>. We can verify that S(10) = 211 and S(10<sup>4</sup>) = 230312207313.
16
+ Define S(<var>N</var>) as the sum of (<var>x</var><sub><var>i</var></sub>+<var>y</var><sub><var>i</var></sub>) for all losing configurations (<var>x</var><sub><var>i</var></sub>,<var>y</var><sub><var>i</var></sub>), 0 \< <var>x</var><sub><var>i</var></sub> \< <var>y</var><sub><var>i</var></sub> ≤ <var>N</var>. We can verify that S(10) = 211 and S(10<sup>4</sup>) = 230312207313.
17
17
 
18
18
  Find S(10<sup>16</sup>) mod 7<sup>10</sup>.
19
19
 
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  :id: 326
3
3
  :name: Modulo Summations
4
- :url: http://projecteuler.net/problem=326
4
+ :url: https://projecteuler.net/problem=326
5
5
  :content: |+
6
- Let <var>a<sub>n</sub></var> be a sequence recursively defined by: ![]({{ images_dir }}/p_326_formula1.gif).
6
+ Let <var>a<sub>n</sub></var> be a sequence recursively defined by: ![p326_formula1.gif]({{ images_dir }}/p326_formula1.gif).
7
7
 
8
8
  So the first 10 elements of <var>a<sub>n</sub></var> are: 1,1,0,3,0,3,5,4,1,9.
9
9
 
10
10
  Let <var>f</var>(<var>N,M</var>) represent the number of pairs (<var>p,q</var>) such that:
11
11
 
12
- ![]({{ images_dir }}/p_326_formula2.gif)
12
+ ![p326_formula2.gif]({{ images_dir }}/p326_formula2.gif)
13
13
 
14
14
  It can be seen that <var>f</var>(10,10)=4 with the pairs (3,3), (5,5), (7,9) and (9,10).
15
15
 
@@ -1,23 +1,23 @@
1
1
  ---
2
2
  :id: 327
3
3
  :name: Rooms of Doom
4
- :url: http://projecteuler.net/problem=327
4
+ :url: https://projecteuler.net/problem=327
5
5
  :content: "A series of three rooms are connected to each other by automatic doors.\n\n
6
- ![]({{ images_dir }}/p_327_rooms_of_doom.gif)\n\nEach door is operated by a security
7
- card. Once you enter a room the door automatically closes and that security card
8
- cannot be used again. A machine at the start will dispense an unlimited number of
9
- cards, but each room (including the starting room) contains scanners and if they
10
- detect that you are holding more than three security cards or if they detect an
11
- unattended security card on the floor, then all the doors will become permanently
12
- locked. However, each room contains a box where you may safely store any number
13
- of security cards for use at a later stage.\n\nIf you simply tried to travel through
14
- the rooms one at a time then as you entered room 3 you would have used all three
15
- cards and would be trapped in that room forever!\n\nHowever, if you make use of
16
- the storage boxes, then escape is possible. For example, you could enter room 1
17
- using your first card, place one card in the storage box, and use your third card
18
- to exit the room back to the start. Then after collecting three more cards from
19
- the dispensing machine you could use one to enter room 1 and collect the card you
20
- placed in the box a moment ago. You now have three cards again and will be able
6
+ ![p327_rooms_of_doom.gif]({{ images_dir }}/p327_rooms_of_doom.gif)\n\nEach door
7
+ is operated by a security card. Once you enter a room the door automatically closes
8
+ and that security card cannot be used again. A machine at the start will dispense
9
+ an unlimited number of cards, but each room (including the starting room) contains
10
+ scanners and if they detect that you are holding more than three security cards
11
+ or if they detect an unattended security card on the floor, then all the doors will
12
+ become permanently locked. However, each room contains a box where you may safely
13
+ store any number of security cards for use at a later stage.\n\nIf you simply tried
14
+ to travel through the rooms one at a time then as you entered room 3 you would have
15
+ used all three cards and would be trapped in that room forever!\n\nHowever, if you
16
+ make use of the storage boxes, then escape is possible. For example, you could enter
17
+ room 1 using your first card, place one card in the storage box, and use your third
18
+ card to exit the room back to the start. Then after collecting three more cards
19
+ from the dispensing machine you could use one to enter room 1 and collect the card
20
+ you placed in the box a moment ago. You now have three cards again and will be able
21
21
  to travel through the remaining three doors. This method allows you to travel through
22
22
  all three rooms using six security cards in total.\n\nIt is possible to travel through
23
23
  six rooms using a total of 123 security cards while carrying a maximum of 3 cards.\n\nLet
@@ -25,9 +25,6 @@
25
25
  <var>R</var> be the number of rooms to travel through.\n\nLet M(<var>C</var>,<var>R</var>)
26
26
  be the minimum number of cards required from the dispensing machine to travel through
27
27
  <var>R</var> rooms carrying up to a maximum of <var>C</var> cards at any time.\n\nFor
28
- example, M(3,6)=123 and M(4,6)=23. \nAnd, ΣM(<var>C</var>,6)=146 for 3 ![]({{
29
- images_dir }}/symbol_le.gif) <var>C</var> ![]({{ images_dir }}/symbol_le.gif) 4.\n\nYou
30
- are given that ΣM(<var>C</var>,10)=10382 for 3 ![]({{ images_dir }}/symbol_le.gif)
31
- <var>C</var> ![≤]({{ images_dir }}/symbol_le.gif) 10.\n\nFind ΣM(<var>C</var>,30)
32
- for 3 ![≤]({{ images_dir }}/symbol_le.gif) <var>C</var> ![≤]({{ images_dir }}/symbol_le.gif)
33
- 40.\n\n"
28
+ example, M(3,6)=123 and M(4,6)=23. \nAnd, ΣM(<var>C</var>,6)=146 for 3 ≤ <var>C</var>
29
+ 4.\n\nYou are given that ΣM(<var>C</var>,10)=10382 for 3 ≤ <var>C</var> ≤ 10.\n\nFind
30
+ ΣM(<var>C</var>,30) for 3 ≤ <var>C</var> ≤ 40.\n\n"
@@ -1,33 +1,33 @@
1
1
  ---
2
2
  :id: 328
3
3
  :name: Lowest-cost Search
4
- :url: http://projecteuler.net/problem=328
4
+ :url: https://projecteuler.net/problem=328
5
5
  :content: "We are trying to find a hidden number selected from the set of integers
6
- {1, 2, ..., <var>n</var>} by asking questions. \rEach number (question) we ask,
7
- has a <u>cost equal to the number asked</u> and we get one of three possible answers:\n\n-
6
+ {1, 2, ..., <var>n</var>} by asking questions. Each number (question) we ask, has
7
+ a <u>cost equal to the number asked</u> and we get one of three possible answers:\n\n-
8
8
  \"Your guess is lower than the hidden number\", or\n- \"Yes, that's it!\", or\n-
9
9
  \"Your guess is higher than the hidden number\".\n\nGiven the value of <var>n</var>,
10
10
  an _optimal strategy_ minimizes the total cost (i.e. the sum of all the questions
11
11
  asked) <u>for the worst possible case</u>. E.g.\n\nIf <var>n</var>=3, the best we
12
- can do is obviously to ask the number \" **2** \". The answer will immediately lead
12
+ can do is obviously to ask the number \" **2**\". The answer will immediately lead
13
13
  us to find the hidden number (at a total cost = 2).\n\nIf <var>n</var>=8, we might
14
14
  decide to use a \"binary search\" type of strategy: Our first question would be
15
- \" **4** \" and if the hidden number is higher than 4 we will need one or two additional
16
- questions. \n\rLet our second question be \" **6** \". If the hidden number is
17
- still higher than 6, we will need a third question in order to discriminate between
18
- 7 and 8. \n\rThus, our third question will be \" **7** \" and the total cost for
19
- this worst-case scenario will be 4+6+7= **17** .\n\nWe can improve considerably
20
- the worst-case cost for <var>n</var>=8, by asking \" **5** \" as our first question.
21
- \ \n\rIf we are told that the hidden number is higher than 5, our second question
22
- will be \" **7** \", then we'll know for certain what the hidden number is (for
23
- a total cost of 5+7= **12** ). \n\rIf we are told that the hidden number is lower
24
- than 5, our second question will be \" **3** \" and if the hidden number is lower
25
- than 3 our third question will be \" **1** \", giving a total cost of 5+3+1= **9**
26
- . \n\rSince **12** > **9** , the worst-case cost for this strategy is **12** .
27
- That's better than what we achieved previously with the \"binary search\" strategy;
28
- it is also better than or equal to any other strategy. \n\rSo, in fact, we have
29
- just described an optimal strategy for <var>n</var>=8.\n\nLet C(<var>n</var>) be
30
- the worst-case cost achieved by an optimal strategy for <var>n</var>, as described
31
- above. \n\rThus C(1) = 0, C(2) = 1, C(3) = 2 and C(8) = 12. \n\rSimilarly, C(100)
32
- = 400 and ![]({{ images_dir }}/p_328_sum1.gif)C(<var>n</var>) = 17575.\n\nFind ![]({{
33
- images_dir }}/p_328_sum2.gif)C(<var>n</var>).\n\n"
15
+ \" **4**\" and if the hidden number is higher than 4 we will need one or two additional
16
+ questions. \nLet our second question be \" **6**\". If the hidden number is still
17
+ higher than 6, we will need a third question in order to discriminate between 7
18
+ and 8. \nThus, our third question will be \" **7**\" and the total cost for this
19
+ worst-case scenario will be 4+6+7= **17**.\n\nWe can improve considerably the worst-case
20
+ cost for <var>n</var>=8, by asking \" **5**\" as our first question. \nIf we are
21
+ told that the hidden number is higher than 5, our second question will be \" **7**\",
22
+ then we'll know for certain what the hidden number is (for a total cost of 5+7=
23
+ **12** ). \nIf we are told that the hidden number is lower than 5, our second question
24
+ will be \" **3**\" and if the hidden number is lower than 3 our third question will
25
+ be \" **1**\", giving a total cost of 5+3+1= **9**. \nSince **12** \\> **9** ,
26
+ the worst-case cost for this strategy is **12**. That's better than what we achieved
27
+ previously with the \"binary search\" strategy; it is also better than or equal
28
+ to any other strategy. \nSo, in fact, we have just described an optimal strategy
29
+ for <var>n</var>=8.\n\nLet C(<var>n</var>) be the worst-case cost achieved by an
30
+ optimal strategy for <var>n</var>, as described above. \nThus C(1) = 0, C(2) =
31
+ 1, C(3) = 2 and C(8) = 12. \nSimilarly, C(100) = 400 and ![p328_sum1.gif]({{ images_dir
32
+ }}/p328_sum1.gif)C(<var>n</var>) = 17575.\n\nFind ![p328_sum2.gif]({{ images_dir
33
+ }}/p328_sum2.gif)C(<var>n</var>).\n\n"
@@ -1,16 +1,16 @@
1
1
  ---
2
2
  :id: 329
3
3
  :name: Prime Frog
4
- :url: http://projecteuler.net/problem=329
5
- :content: "Susan has a prime frog. \n\rHer frog is jumping around over 500 squares
6
- numbered 1 to 500.\rHe can only jump one square to the left or to the right, with
4
+ :url: https://projecteuler.net/problem=329
5
+ :content: "Susan has a prime frog. \nHer frog is jumping around over 500 squares
6
+ numbered 1 to 500. He can only jump one square to the left or to the right, with
7
7
  equal probability, and he cannot jump outside the range [1;500]. \n(if it lands
8
8
  at either end, it automatically jumps to the only available square on the next move.)\n\nWhen
9
9
  he is on a square with a prime number on it, he croaks 'P' (PRIME) with probability
10
10
  2/3 or 'N' (NOT PRIME) with probability 1/3 just before jumping to the next square.
11
- \ \n\rWhen he is on a square with a number on it that is not a prime he croaks 'P'
11
+ \ \nWhen he is on a square with a number on it that is not a prime he croaks 'P'
12
12
  with probability 1/3 or 'N' with probability 2/3 just before jumping to the next
13
13
  square.\n\nGiven that the frog's starting position is random with the same probability
14
14
  for every square, and given that she listens to his first 15 croaks, what is the
15
- probability that she hears the sequence PPPPNNPPPNPPNPN?\n\n\rGive your answer as
16
- a fraction p/q in reduced form.\r\r\n"
15
+ probability that she hears the sequence PPPPNNPPPNPPNPN?\n\nGive your answer as
16
+ a fraction p/q in reduced form.\n"
data/data/problems/33.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 33
3
- :name: Digit canceling fractions
4
- :url: http://projecteuler.net/problem=33
3
+ :name: Digit cancelling fractions
4
+ :url: https://projecteuler.net/problem=33
5
5
  :content: |+
6
6
  The fraction <sup>49</sup>/<sub>98</sub> is a curious fraction, as an inexperienced mathematician in attempting to simplify it may incorrectly believe that <sup>49</sup>/<sub>98</sub> = <sup>4</sup>/<sub>8</sub>, which is correct, is obtained by cancelling the 9s.
7
7