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,18 +1,19 @@
1
1
  ---
2
2
  :id: 395
3
3
  :name: Pythagorean tree
4
- :url: http://projecteuler.net/problem=395
5
- :content: "The **Pythagorean tree** is a fractal generated by the following procedure:\n\nStart
6
- with a unit square. Then, calling one of the sides its base (in the animation, the
7
- bottom side is the base):\n\n1. Attach a right triangle to the side opposite the
8
- base, with the hypotenuse coinciding with that side and with the sides in a 3-4-5
9
- ratio. Note that the smaller side of the triangle must be on the 'right' side with
10
- respect to the base (see animation).\n2. Attach a square to each leg of the right
11
- triangle, with one of its sides coinciding with that leg.\n3. Repeat this procedure
12
- for both squares, considering as their bases the sides touching the triangle.\n\rThe
13
- resulting figure, after an infinite number of iterations, is the Pythagorean tree.\r\r\r\n
14
- ![]({{ images_dir }}/p_395_pythagorean.gif)\n\nIt can be shown that there exists
15
- at least one rectangle, whose sides are parallel to the largest square of the Pythagorean
16
- tree, which encloses the Pythagorean tree completely.\n\nFind the smallest area
17
- possible for such a bounding rectangle, and give your answer rounded to 10 decimal
18
- places.\n\n"
4
+ :url: https://projecteuler.net/problem=395
5
+ :content: |+
6
+ The **Pythagorean tree** is a fractal generated by the following procedure:
7
+
8
+ Start with a unit square. Then, calling one of the sides its base (in the animation, the bottom side is the base):
9
+
10
+ 1. Attach a right triangle to the side opposite the base, with the hypotenuse coinciding with that side and with the sides in a 3-4-5 ratio. Note that the smaller side of the triangle must be on the 'right' side with respect to the base (see animation).
11
+ 2. Attach a square to each leg of the right triangle, with one of its sides coinciding with that leg.
12
+ 3. Repeat this procedure for both squares, considering as their bases the sides touching the triangle.
13
+ The resulting figure, after an infinite number of iterations, is the Pythagorean tree.
14
+ ![p395_pythagorean.gif]({{ images_dir }}/p395_pythagorean.gif)
15
+
16
+ It can be shown that there exists at least one rectangle, whose sides are parallel to the largest square of the Pythagorean tree, which encloses the Pythagorean tree completely.
17
+
18
+ Find the smallest area possible for such a bounding rectangle, and give your answer rounded to 10 decimal places.
19
+
@@ -1,21 +1,18 @@
1
1
  ---
2
2
  :id: 396
3
3
  :name: Weak Goodstein sequence
4
- :url: http://projecteuler.net/problem=396
4
+ :url: https://projecteuler.net/problem=396
5
5
  :content: "For any positive integer n, the **nth weak Goodstein sequence** {g<sub>1</sub>,
6
6
  g<sub>2</sub>, g<sub>3</sub>, ...} is defined as:\n\n- g<sub>1</sub> = <var>n</var>\n-
7
- for <var>k</var> ![>]({{ images_dir }}/symbol_gt.gif) 1, g<sub><var>k</var></sub>
8
- is obtained by writing g<sub><var>k</var>-1</sub> in base <var>k</var>, interpreting
9
- it as a base <var>k</var> + 1 number, and subtracting 1.\r\n\rThe sequence terminates
10
- when g<sub><var>k</var></sub> becomes 0.\r\r\n\nFor example, the 6th weak Goodstein
11
- sequence is {6, 11, 17, 25, ...}:\n\n- g<sub>1</sub> = 6.\r\n- g<sub>2</sub> = 11
12
- since 6 = 110<sub>2</sub>, 110<sub>3</sub> = 12, and 12 - 1 = 11.\r\n- g<sub>3</sub>
13
- = 17 since 11 = 102<sub>3</sub>, 102<sub>4</sub> = 18, and 18 - 1 = 17.\r\n- g<sub>4</sub>
14
- = 25 since 17 = 101<sub>4</sub>, 101<sub>5</sub> = 26, and 26 - 1 = 25.\r\n\rand
15
- so on.\r\r\n\nIt can be shown that every weak Goodstein sequence terminates.\n\nLet
16
- G(<var>n</var>) be the number of nonzero elements in the <var>n</var>th weak Goodstein
17
- sequence. \n\rIt can be verified that G(2) = 3, G(4) = 21 and G(6) = 381. \n\rIt
18
- can also be verified that ΣG(<var>n</var>) = 2517 for 1 ![]({{ images_dir }}/symbol_le.gif)
19
- <var>n</var> ![<]({{ images_dir }}/symbol_lt.gif) 8.\n\nFind the last 9 digits of
20
- ΣG(<var>n</var>) for 1 ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var> ![<]({{
21
- images_dir }}/symbol_lt.gif) 16.\n\n"
7
+ for <var>k</var> \\> 1, g<sub><var>k</var></sub> is obtained by writing g<sub><var>k</var>-1</sub>
8
+ in base <var>k</var>, interpreting it as a base <var>k</var> + 1 number, and subtracting
9
+ 1.\nThe sequence terminates when g<sub><var>k</var></sub> becomes 0.\n\nFor example,
10
+ the 6th weak Goodstein sequence is {6, 11, 17, 25, ...}:\n\n- g<sub>1</sub> = 6.\n-
11
+ g<sub>2</sub> = 11 since 6 = 110<sub>2</sub>, 110<sub>3</sub> = 12, and 12 - 1 =
12
+ 11.\n- g<sub>3</sub> = 17 since 11 = 102<sub>3</sub>, 102<sub>4</sub> = 18, and
13
+ 18 - 1 = 17.\n- g<sub>4</sub> = 25 since 17 = 101<sub>4</sub>, 101<sub>5</sub> =
14
+ 26, and 26 - 1 = 25.\nand so on.\n\nIt can be shown that every weak Goodstein sequence
15
+ terminates.\n\nLet G(<var>n</var>) be the number of nonzero elements in the <var>n</var>th
16
+ weak Goodstein sequence. \nIt can be verified that G(2) = 3, G(4) = 21 and G(6)
17
+ = 381. \nIt can also be verified that ΣG(<var>n</var>) = 2517 for 1 <var>n</var>
18
+ \\< 8.\n\nFind the last 9 digits of ΣG(<var>n</var>) for 1 ≤ <var>n</var> \\< 16.\n\n"
@@ -1,14 +1,12 @@
1
1
  ---
2
2
  :id: 397
3
3
  :name: Triangle on parabola
4
- :url: http://projecteuler.net/problem=397
4
+ :url: https://projecteuler.net/problem=397
5
5
  :content: "On the parabola <var>y</var> = <var>x</var><sup>2</sup>/<var>k</var>, three
6
6
  points A(<var>a</var>, <var>a</var><sup>2</sup>/<var>k</var>), B(<var>b</var>, <var>b</var><sup>2</sup>/<var>k</var>)
7
7
  and C(<var>c</var>, <var>c</var><sup>2</sup>/<var>k</var>) are chosen.\n\nLet F(<var>K</var>,
8
8
  <var>X</var>) be the number of the integer quadruplets (<var>k</var>, <var>a</var>,
9
9
  <var>b</var>, <var>c</var>) such that at least one angle of the triangle ABC is
10
- 45-degree, with 1 ![]({{ images_dir }}/symbol_le.gif) <var>k</var> ![]({{ images_dir
11
- }}/symbol_le.gif) <var>K</var> and -<var>X</var> ![]({{ images_dir }}/symbol_le.gif)
12
- <var>a</var> ![<]({{ images_dir }}/symbol_lt.gif) <var>b</var> ![<]({{ images_dir
13
- }}/symbol_lt.gif) <var>c</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>X</var>.\n\nFor
14
- example, F(1, 10) = 41 and F(10, 100) = 12492. \n\rFind F(10<sup>6</sup>, 10<sup>9</sup>).\n\n"
10
+ 45-degree, with 1 ≤ <var>k</var> <var>K</var> and -<var>X</var> <var>a</var>
11
+ \\< <var>b</var> \\< <var>c</var> ≤ <var>X</var>.\n\nFor example, F(1, 10) = 41
12
+ and F(10, 100) = 12492. \nFind F(10<sup>6</sup>, 10<sup>9</sup>).\n\n"
@@ -1,12 +1,11 @@
1
1
  ---
2
2
  :id: 398
3
3
  :name: Cutting rope
4
- :url: http://projecteuler.net/problem=398
5
- :content: "Inside a rope of length <var>n</var>, <var>n</var>-1 points are placed
6
- with distance 1 from each other and from the endpoints. Among these points, we choose
7
- <var>m</var>-1 points at random and cut the rope at these points to create <var>m</var>
8
- segments.\n\nLet E(<var>n</var>, <var>m</var>) be the expected length of the second-shortest
9
- segment.\rFor example, E(3, 2) = 2 and E(8, 3) = 16/7.\rNote that if multiple segments
10
- have the same shortest length the length of the second-shortest segment is defined
11
- as the same as the shortest length.\n\nFind E(10<sup>7</sup>, 100).\rGive your answer
12
- rounded to 5 decimal places behind the decimal point.\n\n"
4
+ :url: https://projecteuler.net/problem=398
5
+ :content: |+
6
+ Inside a rope of length <var>n</var>, <var>n</var>-1 points are placed with distance 1 from each other and from the endpoints. Among these points, we choose <var>m</var>-1 points at random and cut the rope at these points to create <var>m</var> segments.
7
+
8
+ Let E(<var>n</var>, <var>m</var>) be the expected length of the second-shortest segment. For example, E(3, 2) = 2 and E(8, 3) = 16/7. Note that if multiple segments have the same shortest length the length of the second-shortest segment is defined as the same as the shortest length.
9
+
10
+ Find E(10<sup>7</sup>, 100). Give your answer rounded to 5 decimal places behind the decimal point.
11
+
@@ -1,22 +1,21 @@
1
1
  ---
2
2
  :id: 399
3
3
  :name: Squarefree Fibonacci Numbers
4
- :url: http://projecteuler.net/problem=399
5
- :content: "The first 15 fibonacci numbers are: \n\r1,1,2,3,5,8,13,21,34,55,89,144,233,377,610.
6
- \ \n\rIt can be seen that 8 and 144 are not squarefree: 8 is divisible by 4 and
7
- 144 is divisible by 4 and by 9. \n \rSo the first 13 squarefree fibonacci numbers
8
- are: \n\r1,1,2,3,5,13,21,34,55,89,233,377 and 610.\n\nThe 200th squarefree fibonacci
9
- number is:\r971183874599339129547649988289594072811608739584170445. \n\rThe last
10
- sixteen digits of this number are: 1608739584170445 and in scientific notation this
11
- number can be written as 9.7e53.\n\nFind the 100 000 000th squarefree fibonacci
12
- number. \n\rGive as your answer its last sixteen digits followed by a comma followed
13
- by the number in scientific notation (rounded to one digit after the decimal point).
14
- \ \n\rFor the 200th squarefree number the answer would have been: 1608739584170445,9.7e53\n\n<font
15
- size=\"-1\">\r\nNote:<br> \r\nFor this problem, assume that for every prime p, the
16
- first fibonacci number divisible by p is not divisible by p<sup>2</sup> (this is
17
- part of <b>Wall's conjecture</b>). This has been verified for primes <img src=\"%7B%7B%20images_dir%20%7D%7D/symbol_le.gif\"
18
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">
19
- 3·10<sup>15</sup>, but has not been proven in general.<br>\r\n\r\n\r\nIf it happens
20
- that the conjecture is false, then the accepted answer to this problem isn't guaranteed
21
- to be the 100 000 000th squarefree fibonacci number, rather it represents only a
22
- lower bound for that number.\r\n</font>\n\n"
4
+ :url: https://projecteuler.net/problem=399
5
+ :content: "The first 15 fibonacci numbers are: \n1,1,2,3,5,8,13,21,34,55,89,144,233,377,610.
6
+ \ \nIt can be seen that 8 and 144 are not squarefree: 8 is divisible by 4 and 144
7
+ is divisible by 4 and by 9. \n So the first 13 squarefree fibonacci numbers are:
8
+ \ \n1,1,2,3,5,13,21,34,55,89,233,377 and 610.\n\nThe 200th squarefree fibonacci
9
+ number is: 971183874599339129547649988289594072811608739584170445. \nThe last sixteen
10
+ digits of this number are: 1608739584170445 and in scientific notation this number
11
+ can be written as 9.7e53.\n\nFind the 100 000 000th squarefree fibonacci number.
12
+ \ \nGive as your answer its last sixteen digits followed by a comma followed by
13
+ the number in scientific notation (rounded to one digit after the decimal point).
14
+ \ \nFor the 200th squarefree number the answer would have been: 1608739584170445,9.7e53\n\n<font
15
+ size=\"-1\">\nNote:<br> \nFor this problem, assume that for every prime p, the first
16
+ fibonacci number divisible by p is not divisible by p<sup>2</sup> (this is part
17
+ of <b>Wall's conjecture</b>). This has been verified for primes ≤ 3·10<sup>15</sup>,
18
+ but has not been proven in general.<br>\n\nIf it happens that the conjecture is
19
+ false, then the accepted answer to this problem isn't guaranteed to be the 100 000
20
+ 000th squarefree fibonacci number, rather it represents only a lower bound for that
21
+ number.\n</font>\n\n"
data/data/problems/4.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  :id: 4
3
3
  :name: Largest palindrome product
4
- :url: http://projecteuler.net/problem=4
4
+ :url: https://projecteuler.net/problem=4
5
5
  :content: |+
6
- A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 ![×]({{ images_dir }}/symbol_times.gif) 99.
6
+ A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
7
7
 
8
8
  Find the largest palindrome made from the product of two 3-digit numbers.
9
9
 
data/data/problems/40.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 40
3
3
  :name: Champernowne's constant
4
- :url: http://projecteuler.net/problem=40
4
+ :url: https://projecteuler.net/problem=40
5
5
  :content: |+
6
6
  An irrational decimal fraction is created by concatenating the positive integers:
7
7
 
@@ -11,5 +11,5 @@
11
11
 
12
12
  If _d_<sub><i>n</i></sub> represents the _n_<sup>th</sup> digit of the fractional part, find the value of the following expression.
13
13
 
14
- _d_<sub>1</sub> ![×]({{ images_dir }}/symbol_times.gif) _d_<sub>10</sub> ![×]({{ images_dir }}/symbol_times.gif) _d_<sub>100</sub> ![×]({{ images_dir }}/symbol_times.gif) _d_<sub>1000</sub> ![×]({{ images_dir }}/symbol_times.gif) _d_<sub>10000</sub> ![×]({{ images_dir }}/symbol_times.gif) _d_<sub>100000</sub> ![×]({{ images_dir }}/symbol_times.gif) _d_<sub>1000000</sub>
14
+ _d_<sub>1</sub> × _d_<sub>10</sub> × _d_<sub>100</sub> × _d_<sub>1000</sub> × _d_<sub>10000</sub> × _d_<sub>100000</sub> × _d_<sub>1000000</sub>
15
15
 
@@ -1,16 +1,17 @@
1
1
  ---
2
2
  :id: 400
3
3
  :name: Fibonacci tree game
4
- :url: http://projecteuler.net/problem=400
4
+ :url: https://projecteuler.net/problem=400
5
5
  :content: "A **Fibonacci tree** is a binary tree recursively defined as:\n\n- T(0)
6
- is the empty tree.\r\n- T(1) is the binary tree with only one node.\r\n- T(<var>k</var>)
7
- consists of a root node that has T(<var>k</var>-1) and T(<var>k</var>-2) as children.\r\n\nOn
6
+ is the empty tree.\n- T(1) is the binary tree with only one node.\n- T(<var>k</var>)
7
+ consists of a root node that has T(<var>k</var>-1) and T(<var>k</var>-2) as children.\n\nOn
8
8
  such a tree two players play a take-away game. On each turn a player selects a node
9
- and removes that node along with the subtree rooted at that node. \n\rThe player
9
+ and removes that node along with the subtree rooted at that node. \nThe player
10
10
  who is forced to take the root node of the entire tree loses.\n\nHere are the winning
11
11
  moves of the first player on the first turn for T(<var>k</var>) from <var>k</var>=1
12
- to <var>k</var>=6.\n\n![]({{ images_dir }}/p400_winning.png)\n\n\r\r\r\rLet <var>f</var>(<var>k</var>)
13
- be the number of winning moves of the first player (i.e. the moves for which the
14
- second player has no winning strategy) on the first turn of the game when this game
15
- is played on T(<var>k</var>).\r\r\r\n\nFor example, <var>f</var>(5) = 1 and <var>f</var>(10)
16
- = 17.\n\nFind <var>f</var>(10000). Give the last 18 digits of your answer.\n\n"
12
+ to <var>k</var>=6.\n\n![p400_winning.png]({{ images_dir }}/p400_winning.png)\n\nLet
13
+ <var>f</var>(<var>k</var>) be the number of winning moves of the first player (i.e.
14
+ the moves for which the second player has no winning strategy) on the first turn
15
+ of the game when this game is played on T(<var>k</var>).\n\nFor example, <var>f</var>(5)
16
+ = 1 and <var>f</var>(10) = 17.\n\nFind <var>f</var>(10000). Give the last 18 digits
17
+ of your answer.\n\n"
@@ -1,10 +1,9 @@
1
1
  ---
2
2
  :id: 401
3
3
  :name: Sum of squares of divisors
4
- :url: http://projecteuler.net/problem=401
5
- :content: "The divisors of 6 are 1,2,3 and 6. \n\rThe sum of the squares of these
6
- numbers is 1+4+9+36=50.\n\nLet sigma2(n) represent the sum of the squares of the
7
- divisors of n.\rThus sigma2(6)=50.\n\n\rLet SIGMA2 represent the summatory function
8
- of sigma2, that is SIGMA2(n)= ![∑]({{ images_dir }}/symbol_sum.gif)sigma2(i) for
9
- i=1 to n. \n\rThe first 6 values of SIGMA2 are: 1,6,16,37,63 and 113.\r\r\n\nFind
10
- SIGMA2(10<sup>15</sup>) modulo 10<sup>9</sup>.\n\n"
4
+ :url: https://projecteuler.net/problem=401
5
+ :content: "The divisors of 6 are 1,2,3 and 6. \nThe sum of the squares of these numbers
6
+ is 1+4+9+36=50.\n\nLet sigma2(n) represent the sum of the squares of the divisors
7
+ of n. Thus sigma2(6)=50.\n\nLet SIGMA2 represent the summatory function of sigma2,
8
+ that is SIGMA2(n)=∑sigma2(i) for i=1 to n. \nThe first 6 values of SIGMA2 are:
9
+ 1,6,16,37,63 and 113.\n\nFind SIGMA2(10<sup>15</sup>) modulo 10<sup>9</sup>.\n\n"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 402
3
3
  :name: Integer-valued polynomials
4
- :url: http://projecteuler.net/problem=402
4
+ :url: https://projecteuler.net/problem=402
5
5
  :content: "It can be shown that the polynomial <var>n</var><sup>4</sup> + 4<var>n</var><sup>3</sup>
6
6
  + 2<var>n</var><sup>2</sup> + 5<var>n</var> is a multiple of 6 for every integer
7
7
  <var>n</var>. It can also be shown that 6 is the largest integer satisfying this
@@ -9,11 +9,9 @@
9
9
  such that <var>n</var><sup>4</sup> + <var>a</var><var>n</var><sup>3</sup> + <var>b</var><var>n</var><sup>2</sup>
10
10
  + <var>c</var><var>n</var> is a multiple of <var>m</var> for all integers <var>n</var>.
11
11
  For example, M(4, 2, 5) = 6.\n\nAlso, define S(<var>N</var>) as the sum of M(<var>a</var>,
12
- <var>b</var>, <var>c</var>) for all 0 ![<]({{ images_dir }}/symbol_lt.gif) <var>a</var>,
13
- <var>b</var>, <var>c</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>N</var>.\n\nWe
14
- can verify that S(10) = 1972 and S(10000) = 2024258331114.\n\nLet F<sub><var>k</var></sub>
15
- be the Fibonacci sequence: \n\rF<sub>0</sub> = 0, F<sub>1</sub> = 1 and \n\rF<sub><var>k</var></sub>
16
- = F<sub><var>k</var>-1</sub> + F<sub><var>k</var>-2</sub> for <var>k</var> ![≥]({{
17
- images_dir }}/symbol_ge.gif) 2.\n\nFind the last 9 digits of Σ S(F<sub><var>k</var></sub>)
18
- for 2 ![≤]({{ images_dir }}/symbol_le.gif) <var>k</var> ![≤]({{ images_dir }}/symbol_le.gif)
19
- 1234567890123.\n\n"
12
+ <var>b</var>, <var>c</var>) for all 0 \\< <var>a</var>, <var>b</var>, <var>c</var>
13
+ <var>N</var>.\n\nWe can verify that S(10) = 1972 and S(10000) = 2024258331114.\n\nLet
14
+ F<sub><var>k</var></sub> be the Fibonacci sequence: \nF<sub>0</sub> = 0, F<sub>1</sub>
15
+ = 1 and \nF<sub><var>k</var></sub> = F<sub><var>k</var>-1</sub> + F<sub><var>k</var>-2</sub>
16
+ for <var>k</var> 2.\n\nFind the last 9 digits of Σ S(F<sub><var>k</var></sub>)
17
+ for 2 <var>k</var> ≤ 1234567890123.\n\n"
@@ -1,16 +1,15 @@
1
1
  ---
2
2
  :id: 403
3
3
  :name: Lattice points enclosed by parabola and line
4
- :url: http://projecteuler.net/problem=403
4
+ :url: https://projecteuler.net/problem=403
5
5
  :content: "For integers <var>a</var> and <var>b</var>, we define <var>D</var>(<var>a</var>,
6
6
  <var>b</var>) as the domain enclosed by the parabola <var>y</var> = <var>x</var><sup>2</sup>
7
7
  and the line <var>y</var> = <var>a</var>·<var>x</var> + <var>b</var>: \n<var>D</var>(<var>a</var>,
8
- <var>b</var>) = { (<var>x</var>, <var>y</var>) | <var>x</var><sup>2</sup> ![]({{
9
- images_dir }}/symbol_le.gif) <var>y</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>a</var>·<var>x</var>
10
- + <var>b</var> }.\n\nL(<var>a</var>, <var>b</var>) is defined as the number of lattice
11
- points contained in <var>D</var>(<var>a</var>, <var>b</var>). \n\rFor example,
12
- L(1, 2) = 8 and L(2, -1) = 1.\n\nWe also define S(<var>N</var>) as the sum of L(<var>a</var>,
13
- <var>b</var>) for all the pairs (<var>a</var>, <var>b</var>) such that the area
14
- of <var>D</var>(<var>a</var>, <var>b</var>) is a rational number and |<var>a</var>|,|<var>b</var>|
15
- ![≤]({{ images_dir }}/symbol_le.gif) <var>N</var>. \n\rWe can verify that S(5)
16
- = 344 and S(100) = 26709528.\n\nFind S(10<sup>12</sup>). Give your answer mod 10<sup>8</sup>.\n\n"
8
+ <var>b</var>) = { (<var>x</var>, <var>y</var>) | <var>x</var><sup>2</sup> ≤ <var>y</var>
9
+ <var>a</var>·<var>x</var> + <var>b</var> }.\n\nL(<var>a</var>, <var>b</var>) is
10
+ defined as the number of lattice points contained in <var>D</var>(<var>a</var>,
11
+ <var>b</var>). \nFor example, L(1, 2) = 8 and L(2, -1) = 1.\n\nWe also define S(<var>N</var>)
12
+ as the sum of L(<var>a</var>, <var>b</var>) for all the pairs (<var>a</var>, <var>b</var>)
13
+ such that the area of <var>D</var>(<var>a</var>, <var>b</var>) is a rational number
14
+ and |<var>a</var>|,|<var>b</var>| <var>N</var>. \nWe can verify that S(5) = 344
15
+ and S(100) = 26709528.\n\nFind S(10<sup>12</sup>). Give your answer mod 10<sup>8</sup>.\n\n"
@@ -1,18 +1,16 @@
1
1
  ---
2
2
  :id: 404
3
3
  :name: Crisscross Ellipses
4
- :url: http://projecteuler.net/problem=404
4
+ :url: https://projecteuler.net/problem=404
5
5
  :content: "E<sub><var>a</var></sub> is an ellipse with an equation of the form x<sup>2</sup>
6
- + 4y<sup>2</sup> = 4<var>a</var><sup>2</sup>. \n\rE<sub><var>a</var></sub>' is
7
- the rotated image of E<sub><var>a</var></sub> by θ degrees counterclockwise around
8
- the origin O(0, 0) for 0° ![<]({{ images_dir }}/symbol_lt.gif) θ ![<]({{ images_dir
9
- }}/symbol_lt.gif) 90°.\n\n ![]({{ images_dir }}/p_404_c_ellipse.gif)\n\n<var>b</var>
6
+ + 4y<sup>2</sup> = 4<var>a</var><sup>2</sup>. \nE<sub><var>a</var></sub>' is the
7
+ rotated image of E<sub><var>a</var></sub> by θ degrees counterclockwise around the
8
+ origin O(0, 0) for 0° \\< θ \\< 90°.\n\n ![p404_c_ellipse.gif]({{ images_dir }}/p404_c_ellipse.gif)\n\n<var>b</var>
10
9
  is the distance to the origin of the two intersection points closest to the origin
11
- and <var>c</var> is the distance of the two other intersection points. \n\rWe call
10
+ and <var>c</var> is the distance of the two other intersection points. \nWe call
12
11
  an ordered triplet (<var>a</var>, <var>b</var>, <var>c</var>) a _canonical ellipsoidal
13
- triplet_ if <var>a</var>, <var>b</var> and <var>c</var> are positive integers. \n\rFor
12
+ triplet_ if <var>a</var>, <var>b</var> and <var>c</var> are positive integers. \nFor
14
13
  example, (209, 247, 286) is a canonical ellipsoidal triplet.\n\nLet C(<var>N</var>)
15
14
  be the number of distinct canonical ellipsoidal triplets (<var>a</var>, <var>b</var>,
16
- <var>c</var>) for <var>a</var> ![]({{ images_dir }}/symbol_le.gif) <var>N</var>.
17
- \ \n\rIt can be verified that C(10<sup>3</sup>) = 7, C(10<sup>4</sup>) = 106 and
18
- C(10<sup>6</sup>) = 11845.\n\nFind C(10<sup>17</sup>).\n\n"
15
+ <var>c</var>) for <var>a</var> ≤ <var>N</var>. \nIt can be verified that C(10<sup>3</sup>)
16
+ = 7, C(10<sup>4</sup>) = 106 and C(10<sup>6</sup>) = 11845.\n\nFind C(10<sup>17</sup>).\n\n"
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  :id: 405
3
3
  :name: A rectangular tiling
4
- :url: http://projecteuler.net/problem=405
5
- :content: "We wish to tile a rectangle whose length is twice its width. \n\rLet <var>T</var>(0)
6
- be the tiling consisting of a single rectangle. \n\rFor <var>n</var> > 0, let <var>T</var>(<var>n</var>)
4
+ :url: https://projecteuler.net/problem=405
5
+ :content: "We wish to tile a rectangle whose length is twice its width. \nLet <var>T</var>(0)
6
+ be the tiling consisting of a single rectangle. \nFor <var>n</var> \\> 0, let <var>T</var>(<var>n</var>)
7
7
  be obtained from <var>T</var>(<var>n</var>-1) by replacing all tiles in the following
8
- manner:\n\n ![]({{ images_dir }}/p_405_tile1.png)\n\nThe following animation demonstrates
9
- the tilings <var>T</var>(<var>n</var>) for <var>n</var> from 0 to 5:\n\n ![]({{
10
- images_dir }}/p_405_tile2.gif)\n\nLet <var>f</var>(<var>n</var>) be the number of
11
- points where four tiles meet in <var>T</var>(<var>n</var>). \n\rFor example, <var>f</var>(1)
12
- = 0, <var>f</var>(4) = 82 and <var>f</var>(10<sup>9</sup>) mod 17<sup>7</sup> =
13
- 126897180.\n\nFind <var>f</var>(10<sup><var>k</var></sup>) for <var>k</var> = 10<sup>18</sup>,
14
- give your answer modulo 17<sup>7</sup>.\n\n"
8
+ manner:\n\n ![p405_tile1.png]({{ images_dir }}/p405_tile1.png)\n\nThe following
9
+ animation demonstrates the tilings <var>T</var>(<var>n</var>) for <var>n</var> from
10
+ 0 to 5:\n\n ![p405_tile2.gif]({{ images_dir }}/p405_tile2.gif)\n\nLet <var>f</var>(<var>n</var>)
11
+ be the number of points where four tiles meet in <var>T</var>(<var>n</var>). \nFor
12
+ example, <var>f</var>(1) = 0, <var>f</var>(4) = 82 and <var>f</var>(10<sup>9</sup>)
13
+ mod 17<sup>7</sup> = 126897180.\n\nFind <var>f</var>(10<sup><var>k</var></sup>)
14
+ for <var>k</var> = 10<sup>18</sup>, give your answer modulo 17<sup>7</sup>.\n\n"
@@ -1,38 +1,32 @@
1
1
  ---
2
2
  :id: 406
3
3
  :name: Guessing Game
4
- :url: http://projecteuler.net/problem=406
4
+ :url: https://projecteuler.net/problem=406
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
- we get one of three possible answers:\n\n- \"Your guess is lower than the hidden
8
- number\" (and you incur a cost of <var>a</var>), or\n- \"Your guess is higher than
9
- the hidden number\" (and you incur a cost of <var>b</var>), or\n- \"Yes, that's
10
- it!\" (and the game ends).\n\nGiven the value of <var>n</var>, <var>a</var>, and
11
- <var>b</var>, an _optimal strategy_ minimizes the total cost <u>for the worst possible
12
- case</u>.\n\nFor example, if <var>n</var> = 5, <var>a</var> = 2, and <var>b</var>
13
- = 3, then we may begin by asking \" **2** \" as our first question.\n\nIf we are
14
- told that 2 is higher than the hidden number (for a cost of <var>b</var>=3), then
15
- we are sure that \" **1** \" is the hidden number (for a total cost of **3** ).
16
- \ \n\rIf we are told that 2 is lower than the hidden number (for a cost of <var>a</var>=2),
17
- then our next question will be \" **4** \". \n\rIf we are told that 4 is higher
6
+ {1, 2, ..., <var>n</var>} by asking questions. Each number (question) we ask, we
7
+ get one of three possible answers:\n\n- \"Your guess is lower than the hidden number\"
8
+ (and you incur a cost of <var>a</var>), or\n- \"Your guess is higher than the hidden
9
+ number\" (and you incur a cost of <var>b</var>), or\n- \"Yes, that's it!\" (and
10
+ the game ends).\n\nGiven the value of <var>n</var>, <var>a</var>, and <var>b</var>,
11
+ an _optimal strategy_ minimizes the total cost <u>for the worst possible case</u>.\n\nFor
12
+ example, if <var>n</var> = 5, <var>a</var> = 2, and <var>b</var> = 3, then we may
13
+ begin by asking \" **2**\" as our first question.\n\nIf we are told that 2 is higher
18
14
  than the hidden number (for a cost of <var>b</var>=3), then we are sure that \"
19
- **3** \" is the hidden number (for a total cost of 2+3= **5** ). \n\rIf we are
20
- told that 4 is lower than the hidden number (for a cost of <var>a</var>=2), then
21
- we are sure that \" **5** \" is the hidden number (for a total cost of 2+2= **4**
22
- ). \n\rThus, the worst-case cost achieved by this strategy is **5** . It can also
23
- be shown that this is the lowest worst-case cost that can be achieved. \rSo, in
24
- fact, we have just described an optimal strategy for the given values of <var>n</var>,
25
- <var>a</var>, and <var>b</var>.\n\nLet C(<var>n</var>, <var>a</var>, <var>b</var>)
26
- be the worst-case cost achieved by an optimal strategy for the given values of <var>n</var>,
27
- <var>a</var>, and <var>b</var>.\n\nHere are a few examples: \n\rC(5, 2, 3) = 5
28
- \ \n\rC(500, ![√]({{ images_dir }}/symbol_radic.gif)2, ![√]({{ images_dir }}/symbol_radic.gif)3)
29
- = 13.22073197... \n\rC(20000, 5, 7) = 82 \n\rC(2000000, ![√]({{ images_dir }}/symbol_radic.gif)5,
30
- ![√]({{ images_dir }}/symbol_radic.gif)7) = 49.63755955...\n\nLet F<sub><var>k</var></sub>
15
+ **1**\" is the hidden number (for a total cost of **3** ). \nIf we are told that
16
+ 2 is lower than the hidden number (for a cost of <var>a</var>=2), then our next
17
+ question will be \" **4**\". \nIf we are told that 4 is higher than the hidden
18
+ number (for a cost of <var>b</var>=3), then we are sure that \" **3**\" is the hidden
19
+ number (for a total cost of 2+3= **5** ). \nIf we are told that 4 is lower than
20
+ the hidden number (for a cost of <var>a</var>=2), then we are sure that \" **5**\"
21
+ is the hidden number (for a total cost of 2+2= **4** ). \nThus, the worst-case
22
+ cost achieved by this strategy is **5**. It can also be shown that this is the lowest
23
+ worst-case cost that can be achieved. So, in fact, we have just described an optimal
24
+ strategy for the given values of <var>n</var>, <var>a</var>, and <var>b</var>.\n\nLet
25
+ C(<var>n</var>, <var>a</var>, <var>b</var>) be the worst-case cost achieved by an
26
+ optimal strategy for the given values of <var>n</var>, <var>a</var>, and <var>b</var>.\n\nHere
27
+ are a few examples: \nC(5, 2, 3) = 5 \nC(500, √2, √3) = 13.22073197... \nC(20000,
28
+ 5, 7) = 82 \nC(2000000, √5, √7) = 49.63755955...\n\nLet F<sub><var>k</var></sub>
31
29
  be the Fibonacci numbers: F<sub><var>k</var></sub> = F<sub><var>k</var>-1</sub>
32
30
  + F<sub><var>k</var>-2</sub> with base cases F<sub>1</sub> = F<sub>2</sub> = 1.
33
- \ \nFind ![∑]({{ images_dir }}/symbol_sum.gif)<sub>1<img src=\"%7B%7B%20images_dir%20%7D%7D/symbol_le.gif\"
34
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>k</var><img
35
- src=\"%7B%7B%20images_dir%20%7D%7D/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\"
36
- border=\"0\" style=\"vertical-align:middle;\">30</sub> C(10<sup>12</sup>, ![√]({{
37
- images_dir }}/symbol_radic.gif)<var>k</var>, ![√]({{ images_dir }}/symbol_radic.gif)F<sub><var>k</var></sub>),
31
+ \ \nFind ∑<sub>1≤<var>k</var>≤30</sub>&nbsp;C(10<sup>12</sup>, √<var>k</var>, √F<sub><var>k</var></sub>),
38
32
  and give your answer rounded to 8 decimal places behind the decimal point.\n\n"
@@ -1,13 +1,9 @@
1
1
  ---
2
2
  :id: 407
3
3
  :name: Idempotents
4
- :url: http://projecteuler.net/problem=407
5
- :content: "If we calculate <var>a</var><sup>2</sup> mod 6 for 0 ![]({{ images_dir
6
- }}/symbol_le.gif) <var>a</var> ![≤]({{ images_dir }}/symbol_le.gif) 5 we get: 0,1,4,3,4,1.\n\nThe
7
- largest value of <var>a</var> such that <var>a</var><sup>2</sup> ![≡]({{ images_dir
8
- }}/symbol_cong.gif) <var>a</var> mod 6 is 4. \n\rLet's call M(<var>n</var>) the
9
- largest value of <var>a</var> ![<]({{ images_dir }}/symbol_lt.gif) <var>n</var>
10
- such that <var>a</var><sup>2</sup> ![≡]({{ images_dir }}/symbol_cong.gif) <var>a</var>
11
- (mod <var>n</var>). \n\rSo M(6) = 4.\n\nFind ![∑]({{ images_dir }}/symbol_sum.gif)M(<var>n</var>)
12
- for 1 ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var> ![≤]({{ images_dir }}/symbol_le.gif)
13
- 10<sup>7</sup>.\n\n"
4
+ :url: https://projecteuler.net/problem=407
5
+ :content: "If we calculate <var>a</var><sup>2</sup> mod 6 for 0 ≤ <var>a</var> ≤ 5
6
+ we get: 0,1,4,3,4,1.\n\nThe largest value of <var>a</var> such that <var>a</var><sup>2</sup>
7
+ <var>a</var> mod 6 is 4. \nLet's call M(<var>n</var>) the largest value of <var>a</var>
8
+ \\< <var>n</var> such that <var>a</var><sup>2</sup> <var>a</var> (mod <var>n</var>).
9
+ \ \nSo M(6) = 4.\n\nFind ∑M(<var>n</var>) for 1 <var>n</var> ≤ 10<sup>7</sup>.\n\n"
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  :id: 408
3
3
  :name: Admissible paths through a grid
4
- :url: http://projecteuler.net/problem=408
4
+ :url: https://projecteuler.net/problem=408
5
5
  :content: "Let's call a lattice point (<var>x</var>, <var>y</var>) _inadmissible_
6
- if <var>x</var>, <var>y</var> and <var>x</var> + <var>y</var> are all positive perfect
7
- squares. \n\rFor example, (9, 16) is inadmissible, while (0, 4), (3, 1) and (9,
8
- 4) are not.\n\nConsider a path from point (<var>x</var><sub>1</sub>, <var>y</var><sub>1</sub>)
9
- to point (<var>x</var><sub>2</sub>, <var>y</var><sub>2</sub>) using only unit steps
10
- north or east. \n\rLet's call such a path _admissible_ if none of its intermediate
11
- points are inadmissible.\n\nLet P(<var>n</var>) be the number of admissible paths
12
- from (0, 0) to (<var>n</var>, <var>n</var>). \n\rIt can be verified that P(5) =
13
- 252, P(16) = 596994440 and P(1000) mod 1 000 000 007 = 341920854.\n\nFind P(10 000 000)
14
- mod 1 000 000 007.\n\n"
6
+ if <var>x</var>, <var>y</var> and <var>x</var>&nbsp;+&nbsp;<var>y</var> are all
7
+ positive perfect squares. \nFor example, (9, 16) is inadmissible, while (0, 4),
8
+ (3, 1) and (9, 4) are not.\n\nConsider a path from point (<var>x</var><sub>1</sub>,
9
+ <var>y</var><sub>1</sub>) to point (<var>x</var><sub>2</sub>, <var>y</var><sub>2</sub>)
10
+ using only unit steps north or east. \nLet's call such a path _admissible_ if none
11
+ of its intermediate points are inadmissible.\n\nLet P(<var>n</var>) be the number
12
+ of admissible paths from (0, 0) to (<var>n</var>, <var>n</var>). \nIt can be verified
13
+ that P(5) = 252, P(16) = 596994440 and P(1000) mod 1&nbsp;000&nbsp;000&nbsp;007
14
+ = 341920854.\n\nFind P(10&nbsp;000&nbsp;000) mod 1&nbsp;000&nbsp;000&nbsp;007.\n\n"