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,10 +1,15 @@
1
1
  ---
2
2
  :id: 409
3
3
  :name: Nim Extreme
4
- :url: http://projecteuler.net/problem=409
5
- :content: "Let <var>n</var> be a positive integer. Consider **nim** positions where:\n\n-
6
- There are <var>n</var> non-empty piles.\r\n- Each pile has size less than 2<sup><var>n</var></sup>.\r\n-
7
- No two piles have the same size.\r\n\nLet W(<var>n</var>) be the number of winning
8
- nim positions satisfying the above\rconditions (a position is winning if the first
9
- player has a winning strategy). For example, W(1) = 1, W(2) = 6, W(3) = 168, W(5)
10
- = 19764360 and W(100) mod 1 000 000 007 = 384777056.\n\nFind W(10 000 000) mod 1 000 000 007.\n\n"
4
+ :url: https://projecteuler.net/problem=409
5
+ :content: |+
6
+ Let <var>n</var> be a positive integer. Consider **nim** positions where:
7
+
8
+ - There are <var>n</var> non-empty piles.
9
+ - Each pile has size less than 2<sup><var>n</var></sup>.
10
+ - No two piles have the same size.
11
+
12
+ Let W(<var>n</var>) be the number of winning nim positions satisfying the above conditions (a position is winning if the first player has a winning strategy). For example, W(1) = 1, W(2) = 6, W(3) = 168, W(5) = 19764360 and W(100) mod 1&nbsp;000&nbsp;000&nbsp;007 = 384777056.
13
+
14
+ Find W(10&nbsp;000&nbsp;000) mod 1&nbsp;000&nbsp;000&nbsp;007.
15
+
data/data/problems/41.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 41
3
3
  :name: Pandigital prime
4
- :url: http://projecteuler.net/problem=41
4
+ :url: https://projecteuler.net/problem=41
5
5
  :content: |+
6
6
  We shall say that an _n_-digit number is pandigital if it makes use of all the digits 1 to _n_ exactly once. For example, 2143 is a 4-digit pandigital and is also prime.
7
7
 
@@ -1,15 +1,14 @@
1
1
  ---
2
2
  :id: 410
3
3
  :name: Circle and tangent line
4
- :url: http://projecteuler.net/problem=410
4
+ :url: https://projecteuler.net/problem=410
5
5
  :content: "Let C be the circle with radius <var>r</var>, <var>x</var><sup>2</sup>
6
6
  + <var>y</var><sup>2</sup> = <var>r</var><sup>2</sup>. We choose two points P(<var>a</var>,
7
7
  <var>b</var>) and Q(-<var>a</var>, <var>c</var>) so that the line passing through
8
8
  P and Q is tangent to C.\n\nFor example, the quadruplet (<var>r</var>, <var>a</var>,
9
9
  <var>b</var>, <var>c</var>) = (2, 6, 2, -7) satisfies this property.\n\nLet F(<var>R</var>,
10
10
  <var>X</var>) be the number of the integer quadruplets (<var>r</var>, <var>a</var>,
11
- <var>b</var>, <var>c</var>) with this property, and with 0 ![<]({{ images_dir }}/symbol_lt.gif)
12
- <var>r</var> ![]({{ images_dir }}/symbol_le.gif) <var>R</var> and 0 ![<]({{ images_dir
13
- }}/symbol_lt.gif) <var>a</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>X</var>.\n\nWe
14
- can verify that F(1, 5) = 10, F(2, 10) = 52 and F(10, 100) = 3384. \n\rFind F(10<sup>8</sup>,
15
- 10<sup>9</sup>) + F(10<sup>9</sup>, 10<sup>8</sup>).\n\n"
11
+ <var>b</var>, <var>c</var>) with this property, and with 0 \\< <var>r</var> <var>R</var>
12
+ and 0 \\< <var>a</var> ≤ <var>X</var>.\n\nWe can verify that F(1, 5) = 10, F(2,
13
+ 10) = 52 and F(10, 100) = 3384. \nFind F(10<sup>8</sup>, 10<sup>9</sup>) + F(10<sup>9</sup>,
14
+ 10<sup>8</sup>).\n\n"
@@ -1,18 +1,15 @@
1
1
  ---
2
2
  :id: 411
3
3
  :name: Uphill paths
4
- :url: http://projecteuler.net/problem=411
4
+ :url: https://projecteuler.net/problem=411
5
5
  :content: "Let <var>n</var> be a positive integer. Suppose there are stations at the
6
6
  coordinates (<var>x</var>, <var>y</var>) = (2<sup><var>i</var></sup> mod <var>n</var>,
7
- 3<sup><var>i</var></sup> mod <var>n</var>) for 0 ![]({{ images_dir }}/symbol_le.gif)
8
- <var>i</var> ![≤]({{ images_dir }}/symbol_le.gif) 2<var>n</var>. We will consider
9
- stations with the same coordinates as the same station.\n\nWe wish to form a path
10
- from (0, 0) to (<var>n</var>, <var>n</var>) such that the x and y coordinates never
11
- decrease. \n\rLet S(<var>n</var>) be the maximum number of stations such a path
12
- can pass through.\n\nFor example, if <var>n</var> = 22, there are 11 distinct stations,
13
- and a valid path can pass through at most 5 stations. Therefore, S(22) = 5.\rThe
14
- case is illustrated below, with an example of an optimal path:\n\n![]({{ images_dir
15
- }}/p411_longpath.png)\n\nIt can also be verified that S(123) = 14 and S(10000) =
16
- 48.\n\nFind ![∑]({{ images_dir }}/symbol_sum.gif) S(<var>k</var><sup>5</sup>) for
17
- 1 ![≤]({{ images_dir }}/symbol_le.gif) <var>k</var> ![≤]({{ images_dir }}/symbol_le.gif)
18
- 30.\n\n"
7
+ 3<sup><var>i</var></sup> mod <var>n</var>) for 0 ≤ <var>i</var> ≤ 2<var>n</var>.
8
+ We will consider stations with the same coordinates as the same station.\n\nWe wish
9
+ to form a path from (0, 0) to (<var>n</var>, <var>n</var>) such that the x and y
10
+ coordinates never decrease. \nLet S(<var>n</var>) be the maximum number of stations
11
+ such a path can pass through.\n\nFor example, if <var>n</var> = 22, there are 11
12
+ distinct stations, and a valid path can pass through at most 5 stations. Therefore,
13
+ S(22) = 5. The case is illustrated below, with an example of an optimal path:\n\n![p411_longpath.png]({{
14
+ images_dir }}/p411_longpath.png)\n\nIt can also be verified that S(123) = 14 and
15
+ S(10000) = 48.\n\nFind S(<var>k</var><sup>5</sup>) for 1 <var>k</var> ≤ 30.\n\n"
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  :id: 412
3
3
  :name: Gnomon numbering
4
- :url: http://projecteuler.net/problem=412
5
- :content: "For integers <var>m</var>, <var>n</var> (0  ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var> m),
6
- let L(<var>m</var>, <var>n</var>) be an <var>m</var> ![×]({{ images_dir }}/symbol_times.gif)<var>m</var>
7
- grid with the top-right <var>n</var> ![×]({{ images_dir }}/symbol_times.gif)<var>n</var>
8
- grid removed.\n\nFor example, L(5, 3) looks like this:\n\n![]({{ images_dir }}/p412_table53.png)\n\nWe
9
- want to number each cell of L(<var>m</var>, <var>n</var>) with consecutive integers
4
+ :url: https://projecteuler.net/problem=412
5
+ :content: "For integers <var>m</var>, <var>n</var> (0&nbsp;≤&nbsp;<var>n</var>&nbsp;\\<&nbsp;<var>m</var>),
6
+ let L(<var>m</var>,&nbsp;<var>n</var>) be an <var>m</var>×<var>m</var> grid with
7
+ the top-right <var>n</var>×<var>n</var> grid removed.\n\nFor example, L(5, 3) looks
8
+ like this:\n\n![p412_table53.png]({{ images_dir }}/p412_table53.png)\n\nWe want
9
+ to number each cell of L(<var>m</var>,&nbsp;<var>n</var>) with consecutive integers
10
10
  1, 2, 3, ... such that the number in every cell is smaller than the number below
11
- it and to the left of it.\n\nFor example, here are two valid numberings of L(53):\n\n![]({{
11
+ it and to the left of it.\n\nFor example, here are two valid numberings of L(5,&nbsp;3):\n\n![p412_tablenums.png]({{
12
12
  images_dir }}/p412_tablenums.png)\n\nLet LC(<var>m</var>, <var>n</var>) be the number
13
- of valid numberings of L(<var>m</var>, <var>n</var>). \n\rIt can be verified that
14
- LC(30) = 42, LC(53) = 250250, LC(63) = 406029023400 and LC(105) mod 76543217
15
- = 61251715.\n\nFind LC(100005000) mod 76543217.\n\n"
13
+ of valid numberings of L(<var>m</var>, <var>n</var>). \nIt can be verified that
14
+ LC(3,&nbsp;0) = 42, LC(5,&nbsp;3) = 250250, LC(6,&nbsp;3) = 406029023400 and LC(10,&nbsp;5)
15
+ mod 76543217 = 61251715.\n\nFind LC(10000,&nbsp;5000) mod 76543217.\n\n"
@@ -1,13 +1,12 @@
1
1
  ---
2
2
  :id: 413
3
3
  :name: One-child Numbers
4
- :url: http://projecteuler.net/problem=413
4
+ :url: https://projecteuler.net/problem=413
5
5
  :content: "We say that a <var>d</var>-digit positive number (no leading zeros) is
6
6
  a one-child number if exactly one of its sub-strings is divisible by <var>d</var>.\n\nFor
7
7
  example, 5671 is a 4-digit one-child number. Among all its sub-strings 5, 6, 7,
8
- 1, 56, 67, 71, 567, 671 and 5671, only 56 is divisible by 4. \n\rSimilarly, 104
9
- is a 3-digit one-child number because only 0 is divisible by 3. \n\r1132451 is
10
- a 7-digit one-child number because only 245 is divisible by 7.\n\nLet F(<var>N</var>)
11
- be the number of the one-child numbers less than <var>N</var>. \n\rWe can verify
12
- that F(10) = 9, F(10<sup>3</sup>) = 389 and F(10<sup>7</sup>) = 277674.\n\nFind
13
- F(10<sup>19</sup>).\n\n"
8
+ 1, 56, 67, 71, 567, 671 and 5671, only 56 is divisible by 4. \nSimilarly, 104 is
9
+ a 3-digit one-child number because only 0 is divisible by 3. \n1132451 is a 7-digit
10
+ one-child number because only 245 is divisible by 7.\n\nLet F(<var>N</var>) be the
11
+ number of the one-child numbers less than <var>N</var>. \nWe can verify that F(10)
12
+ = 9, F(10<sup>3</sup>) = 389 and F(10<sup>7</sup>) = 277674.\n\nFind F(10<sup>19</sup>).\n\n"
@@ -1,33 +1,31 @@
1
1
  ---
2
2
  :id: 414
3
3
  :name: Kaprekar constant
4
- :url: http://projecteuler.net/problem=414
4
+ :url: https://projecteuler.net/problem=414
5
5
  :content: "6174 is a remarkable number; if we sort its digits in increasing order
6
6
  and subtract that number from the number you get when you sort the digits in decreasing
7
- order, we get 7641-1467=6174. \n\rEven more remarkable is that if we start from
8
- any 4 digit number and repeat this process of sorting and subtracting, we'll eventually
9
- end up with 6174 or immediately with 0 if all digits are equal. \n \rThis also
10
- works with numbers that have less than 4 digits if we pad the number with leading
11
- zeroes until we have 4 digits. \n\rE.g. let's start with the number 0837: \n\r8730-0378=8352
12
- \ \n\r8532-2358=6174\n\n6174 is called the **Kaprekar constant** . The process of
13
- sorting and subtracting and repeating this until either 0 or the Kaprekar constant
14
- is reached is called the **Kaprekar routine** .\n\nWe can consider the Kaprekar
15
- routine for other bases and number of digits. \n \rUnfortunately, it is not guaranteed
16
- a Kaprekar constant exists in all cases; either the routine can end up in a cycle
17
- for some input numbers or the constant the routine arrives at can be different for
18
- different input numbers. \n\rHowever, it can be shown that for 5 digits and a base
19
- b = 6t+3 ![≠]({{ images_dir }}/symbol_ne.gif)9, a Kaprekar constant exists. \n\rE.g.
20
- base 15: (10,4,14,9,5)<sub>15</sub> \n\rbase 21: (14,6,20,13,7)<sub>21</sub>\n\nDefine
21
- <var>C<sub>b</sub></var> to be the Kaprekar constant in base <var>b</var> for 5
22
- digits.\rDefine the function <var>sb(i)</var> to be\n\n- 0 if i = <var>C<sub>b</sub></var>
23
- or if <var>i</var> written in base <var>b</var> consists of 5 identical digits\r\n-
24
- the number of iterations it takes the Kaprekar routine in base <var>b</var> to arrive
25
- at <var>C<sub>b</sub></var>, otherwise\r\n\rNote that we can define <var>sb(i)</var>
26
- for all integers <var>i</var> ![<]({{ images_dir }}/symbol_lt.gif) <var>b</var><sup>5</sup>.
27
- If <var>i</var> written in base <var>b</var> takes less than 5 digits, the number
28
- is padded with leading zero digits until we have 5 digits before applying the Kaprekar
29
- routine.\r\r\n\nDefine <var>S(b)</var> as the sum of <var>sb(i)</var> for 0 ![<]({{
30
- images_dir }}/symbol_lt.gif) <var>i</var> ![<]({{ images_dir }}/symbol_lt.gif) <var>b</var><sup>5</sup>.
31
- \ \n\rE.g. S(15) = 5274369 \n \rS(111) = 400668930299\n\nFind the sum of S(6k+3)
32
- for 2 ![≤]({{ images_dir }}/symbol_le.gif) k ![≤]({{ images_dir }}/symbol_le.gif)
33
- 300. \n\rGive the last 18 digits as your answer.\n\n"
7
+ order, we get 7641-1467=6174. \nEven more remarkable is that if we start from any
8
+ 4 digit number and repeat this process of sorting and subtracting, we'll eventually
9
+ end up with 6174 or immediately with 0 if all digits are equal. \n This also works
10
+ with numbers that have less than 4 digits if we pad the number with leading zeroes
11
+ until we have 4 digits. \nE.g. let's start with the number 0837: \n8730-0378=8352
12
+ \ \n8532-2358=6174\n\n6174 is called the **Kaprekar constant**. The process of sorting
13
+ and subtracting and repeating this until either 0 or the Kaprekar constant is reached
14
+ is called the **Kaprekar routine**.\n\nWe can consider the Kaprekar routine for
15
+ other bases and number of digits. \n Unfortunately, it is not guaranteed a Kaprekar
16
+ constant exists in all cases; either the routine can end up in a cycle for some
17
+ input numbers or the constant the routine arrives at can be different for different
18
+ input numbers. \nHowever, it can be shown that for 5 digits and a base b = 6t+3≠9,
19
+ a Kaprekar constant exists. \nE.g. base 15: (10,4,14,9,5)<sub>15</sub> \nbase
20
+ 21: (14,6,20,13,7)<sub>21</sub>\n\nDefine <var>C<sub>b</sub></var> to be the Kaprekar
21
+ constant in base <var>b</var> for 5 digits. Define the function <var>sb(i)</var>
22
+ to be\n\n- 0 if i = <var>C<sub>b</sub></var> or if <var>i</var> written in base
23
+ <var>b</var> consists of 5 identical digits\n- the number of iterations it takes
24
+ the Kaprekar routine in base <var>b</var> to arrive at <var>C<sub>b</sub></var>,
25
+ otherwise\nNote that we can define <var>sb(i)</var> for all integers <var>i</var>
26
+ \\< <var>b</var><sup>5</sup>. If <var>i</var> written in base <var>b</var> takes
27
+ less than 5 digits, the number is padded with leading zero digits until we have
28
+ 5 digits before applying the Kaprekar routine.\n\nDefine <var>S(b)</var> as the
29
+ sum of <var>sb(i)</var> for 0 \\< <var>i</var> \\< <var>b</var><sup>5</sup>. \nE.g.
30
+ S(15) = 5274369 \n S(111) = 400668930299\n\nFind the sum of S(6k+3) for 2 ≤ k ≤
31
+ 300. \nGive the last 18 digits as your answer.\n\n"
@@ -1,16 +1,15 @@
1
1
  ---
2
2
  :id: 415
3
3
  :name: Titanic sets
4
- :url: http://projecteuler.net/problem=415
5
- :content: "A set of lattice points S is called a _titanic set_ if there exists a line
6
- passing through exactly two points in S.\n\nAn example of a titanic set is S = {(0,
7
- 0), (0, 1), (0, 2), (1, 1), (2, 0), (1, 0)}, where the line passing through (0,
8
- 1) and (2, 0) does not pass through any other point in S.\n\nOn the other hand,
9
- the set {(0, 0), (1, 1), (2, 2), (4, 4)} is not a titanic set since the line passing
10
- through any two points in the set also passes through the other two.\n\nFor any
11
- positive integer <var>N</var>, let <var>T</var>(<var>N</var>) be the number of titanic
12
- sets S whose every point (<var>x</var>, <var>y</var>) satisfies 0 ![]({{ images_dir
13
- }}/symbol_le.gif) <var>x</var>, <var>y</var> ![≤]({{ images_dir }}/symbol_le.gif)
14
- <var>N</var>.\rIt can be verified that <var>T</var>(1) = 11, <var>T</var>(2) = 494,
15
- <var>T</var>(4) = 33554178, <var>T</var>(111) mod 10<sup>8</sup> = 13500401 and
16
- <var>T</var>(10<sup>5</sup>) mod 10<sup>8</sup> = 63259062.\n\nFind <var>T</var>(10<sup>11</sup>) mod 10<sup>8</sup>.\n\n"
4
+ :url: https://projecteuler.net/problem=415
5
+ :content: |+
6
+ A set of lattice points S is called a _titanic set_ if there exists a line passing through exactly two points in S.
7
+
8
+ An example of a titanic set is S = {(0, 0), (0, 1), (0, 2), (1, 1), (2, 0), (1, 0)}, where the line passing through (0, 1) and (2, 0) does not pass through any other point in S.
9
+
10
+ On the other hand, the set {(0, 0), (1, 1), (2, 2), (4, 4)} is not a titanic set since the line passing through any two points in the set also passes through the other two.
11
+
12
+ For any positive integer <var>N</var>, let <var>T</var>(<var>N</var>) be the number of titanic sets S whose every point (<var>x</var>, <var>y</var>) satisfies 0 ≤ <var>x</var>, <var>y</var> ≤ <var>N</var>. It can be verified that <var>T</var>(1) = 11, <var>T</var>(2) = 494, <var>T</var>(4) = 33554178, <var>T</var>(111) mod 10<sup>8</sup> = 13500401 and <var>T</var>(10<sup>5</sup>)&nbsp;mod&nbsp;10<sup>8</sup> = 63259062.
13
+
14
+ Find <var>T</var>(10<sup>11</sup>)&nbsp;mod&nbsp;10<sup>8</sup>.
15
+
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  :id: 416
3
3
  :name: A frog's trip
4
- :url: http://projecteuler.net/problem=416
4
+ :url: https://projecteuler.net/problem=416
5
5
  :content: "A row of <var>n</var> squares contains a frog in the leftmost square. By
6
6
  successive jumps the frog goes to the rightmost square and then back to the leftmost
7
7
  square. On the outward trip he jumps one, two or three squares to the right, and
8
8
  on the homeward trip he jumps to the left in a similar manner. He cannot jump outside
9
9
  the squares. He repeats the round-trip travel <var>m</var> times.\n\nLet F(<var>m</var>,
10
10
  <var>n</var>) be the number of the ways the frog can travel so that at most one
11
- square remains unvisited. \n\rFor example, F(1, 3) = 4, F(1, 4) = 15, F(1, 5) =
12
- 46, F(2, 3) = 16 and F(2, 100) mod 10<sup>9</sup> = 429619151.\n\nFind the last
13
- 9 digits of F(10, 10<sup>12</sup>).\n\n"
11
+ square remains unvisited. \nFor example, F(1, 3) = 4, F(1, 4) = 15, F(1, 5) = 46,
12
+ F(2, 3) = 16 and F(2, 100) mod 10<sup>9</sup> = 429619151.\n\nFind the last 9 digits
13
+ of F(10, 10<sup>12</sup>).\n\n"
@@ -1,19 +1,17 @@
1
1
  ---
2
2
  :id: 417
3
3
  :name: Reciprocal cycles II
4
- :url: http://projecteuler.net/problem=417
4
+ :url: https://projecteuler.net/problem=417
5
5
  :content: "A unit fraction contains 1 in the numerator. The decimal representation
6
6
  of the unit fractions with denominators 2 to 10 are given:\n\n> | <sup>1</sup>/<sub>2</sub>
7
- | | 0.5 |\n> | <sup>1</sup>/<sub>3</sub> | | 0.(3) |\n> | <sup>1</sup>/<sub>4</sub>
8
- | | 0.25 |\n> | <sup>1</sup>/<sub>5</sub> | | 0.2 |\n> | <sup>1</sup>/<sub>6</sub>
9
- | | 0.1(6) |\n> | <sup>1</sup>/<sub>7</sub> | | 0.(142857) |\n> | <sup>1</sup>/<sub>8</sub>
10
- | =  | 0.125 |\n> | <sup>1</sup>/<sub>9</sub> | | 0.(1) |\n> | <sup>1</sup>/<sub>10</sub>
11
- | | 0.1 |\n\nWhere 0.1(6) means 0.166666..., and has a 1-digit recurring cycle.
12
- It can be seen that <sup>1</sup>/<sub>7</sub> has a 6-digit recurring cycle.\n\nUnit
13
- fractions whose denominator has no other prime factors than 2 and/or 5 are not considered
14
- to have a recurring cycle. \n\rWe define the length of the recurring cycle of those
15
- unit fractions as 0.\n\nLet L(n) denote the length of the recurring cycle of 1/n.\rYou
16
- are given that ![]({{ images_dir }}/symbol_sum.gif)L(n) for 3 ![≤]({{ images_dir
17
- }}/symbol_le.gif) n ![]({{ images_dir }}/symbol_le.gif) 1 000 000 equals 55535191115.\n\nFind
18
- ![∑]({{ images_dir }}/symbol_sum.gif)L(n) for 3 ![≤]({{ images_dir }}/symbol_le.gif)
19
- n ![≤]({{ images_dir }}/symbol_le.gif) 100 000 000\n\n"
7
+ | =&nbsp; | 0.5 |\n> | <sup>1</sup>/<sub>3</sub> | =&nbsp; | 0.(3) |\n> | <sup>1</sup>/<sub>4</sub>
8
+ | =&nbsp; | 0.25 |\n> | <sup>1</sup>/<sub>5</sub> | =&nbsp; | 0.2 |\n> | <sup>1</sup>/<sub>6</sub>
9
+ | =&nbsp; | 0.1(6) |\n> | <sup>1</sup>/<sub>7</sub> | =&nbsp; | 0.(142857) |\n>
10
+ | <sup>1</sup>/<sub>8</sub> | =&nbsp; | 0.125 |\n> | <sup>1</sup>/<sub>9</sub> |
11
+ =&nbsp; | 0.(1) |\n> | <sup>1</sup>/<sub>10</sub> | =&nbsp; | 0.1 |\n\nWhere 0.1(6)
12
+ means 0.166666..., and has a 1-digit recurring cycle. It can be seen that <sup>1</sup>/<sub>7</sub>
13
+ has a 6-digit recurring cycle.\n\nUnit fractions whose denominator has no other
14
+ prime factors than 2 and/or 5 are not considered to have a recurring cycle. \nWe
15
+ define the length of the recurring cycle of those unit fractions as 0.\n\nLet L(n)
16
+ denote the length of the recurring cycle of 1/n. You are given that ∑L(n) for 3
17
+ n ≤ 1 000 000 equals 55535191115.\n\nFind ∑L(n) for 3 ≤ n ≤ 100 000 000\n\n"
@@ -1,13 +1,16 @@
1
1
  ---
2
2
  :id: 418
3
3
  :name: Factorisation triples
4
- :url: http://projecteuler.net/problem=418
5
- :content: "Let <var>n</var> be a positive integer. An integer triple (<var>a</var>,
6
- <var>b</var>, <var>c</var>) is called a _factorisation triple_ of <var>n</var> if:\n\n-
7
- 1 ![≤]({{ images_dir }}/symbol_le.gif) <var>a</var> ![≤]({{ images_dir }}/symbol_le.gif)
8
- <var>b</var> ![]({{ images_dir }}/symbol_le.gif) <var>c</var>\n- <var>a</var>·<var>b</var>·<var>c</var>
9
- = <var>n</var>.\r\n\nDefine <var>f</var>(<var>n</var>) to be <var>a</var> + <var>b</var>
10
- + <var>c</var> for the factorisation triple (<var>a</var>, <var>b</var>, <var>c</var>)
11
- of <var>n</var> which minimises <var>c</var> / <var>a</var>. One can show that this
12
- triple is unique.\n\nFor example, <var>f</var>(165) = 19, <var>f</var>(100100) =
13
- 142 and <var>f</var>(20!) = 4034872.\n\nFind <var>f</var>(43!).\n\n"
4
+ :url: https://projecteuler.net/problem=418
5
+ :content: |+
6
+ Let <var>n</var> be a positive integer. An integer triple (<var>a</var>, <var>b</var>, <var>c</var>) is called a _factorisation triple_ of <var>n</var> if:
7
+
8
+ - 1 ≤ <var>a</var> ≤ <var>b</var> <var>c</var>
9
+ - <var>a</var>·<var>b</var>·<var>c</var> = <var>n</var>.
10
+
11
+ Define <var>f</var>(<var>n</var>) to be <var>a</var> + <var>b</var> + <var>c</var> for the factorisation triple (<var>a</var>, <var>b</var>, <var>c</var>) of <var>n</var> which minimises <var>c</var> / <var>a</var>. One can show that this triple is unique.
12
+
13
+ For example, <var>f</var>(165) = 19, <var>f</var>(100100) = 142 and <var>f</var>(20!) = 4034872.
14
+
15
+ Find <var>f</var>(43!).
16
+
@@ -1,17 +1,15 @@
1
1
  ---
2
2
  :id: 419
3
3
  :name: Look and say sequence
4
- :url: http://projecteuler.net/problem=419
4
+ :url: https://projecteuler.net/problem=419
5
5
  :content: "The **look and say** sequence goes 1, 11, 21, 1211, 111221, 312211, 13112221,
6
- 1113213211, ... \n\rThe sequence starts with 1 and all other members are obtained
7
- by describing the previous member in terms of consecutive digits. \n\rIt helps
8
- to do this out loud: \n\r1 is 'one one' ![]({{ images_dir }}/symbol_maps.gif)
9
- 11 \n\r11 is 'two ones' ![]({{ images_dir }}/symbol_maps.gif) 21 \n\r21 is 'one
10
- two and one one' ![]({{ images_dir }}/symbol_maps.gif) 1211 \n\r1211 is 'one
11
- one, one two and two ones' ![→]({{ images_dir }}/symbol_maps.gif) 111221 \n\r111221
12
- is 'three ones, two twos and one one' ![→]({{ images_dir }}/symbol_maps.gif) 312211
13
- \ \n\r...\n\nDefine A(n), B(n) and C(n) as the number of ones, twos and threes in
14
- the n'th element of the sequence respectively. \n\rOne can verify that A(40) =
15
- 31254, B(40) = 20259 and C(40) = 11625.\n\nFind A(n), B(n) and C(n) for n = 10<sup>12</sup>.
16
- \ \n \rGive your answer modulo 2<sup>30</sup> and separate your values for A, B
17
- and C by a comma. \n \rE.g. for n = 40 the answer would be 31254,20259,11625\n\n"
6
+ 1113213211, ... \nThe sequence starts with 1 and all other members are obtained
7
+ by describing the previous member in terms of consecutive digits. \nIt helps to
8
+ do this out loud: \n1 is 'one one' → 11 \n11 is 'two ones' → 21 \n21 is 'one
9
+ two and one one' → 1211 \n1211 is 'one one, one two and two ones' → 111221 \n111221
10
+ is 'three ones, two twos and one one' → 312211 \n...\n\nDefine A(n), B(n) and C(n)
11
+ as the number of ones, twos and threes in the n'th element of the sequence respectively.
12
+ \ \nOne can verify that A(40) = 31254, B(40) = 20259 and C(40) = 11625.\n\nFind
13
+ A(n), B(n) and C(n) for n = 10<sup>12</sup>. \n Give your answer modulo 2<sup>30</sup>
14
+ and separate your values for A, B and C by a comma. \n E.g. for n = 40 the answer
15
+ would be 31254,20259,11625\n\n"
data/data/problems/42.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  :id: 42
3
3
  :name: Coded triangle numbers
4
- :url: http://projecteuler.net/problem=42
4
+ :url: https://projecteuler.net/problem=42
5
5
  :content: |+
6
6
  The _n_<sup>th</sup> term of the sequence of triangle numbers is given by, _t<sub>n</sub>_ = ½_n_(_n_+1); so the first ten triangle numbers are:
7
7
 
@@ -9,5 +9,5 @@
9
9
 
10
10
  By converting each letter in a word to a number corresponding to its alphabetical position and adding these values we form a word value. For example, the word value for SKY is 19 + 11 + 25 = 55 = _t_<sub>10</sub>. If the word value is a triangle number then we shall call the word a triangle word.
11
11
 
12
- Using [words.txt](project/words.txt) (right click and 'Save Link/Target As...'), a 16K text file containing nearly two-thousand common English words, how many are triangle words?
12
+ Using [words.txt](project/resources/p042_words.txt) (right click and 'Save Link/Target As...'), a 16K text file containing nearly two-thousand common English words, how many are triangle words?
13
13
 
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  :id: 420
3
3
  :name: 2x2 positive integer matrix
4
- :url: http://projecteuler.net/problem=420
4
+ :url: https://projecteuler.net/problem=420
5
5
  :content: "A _positive integer matrix_ is a matrix whose elements are all positive
6
- integers. \n\rSome positive integer matrices can be expressed as a square of a
7
- positive integer matrix in two different ways. Here is an example:\n\n ![]({{ images_dir
8
- }}/p_420_matrix.gif)\n\nWe define F(<var>N</var>) as the number of the 2x2 positive
9
- integer matrices which have a <dfn title=\"the sum of the elements on the main diagonal\">trace</dfn>
10
- less than <var>N</var> and which can be expressed as a square of a positive integer
11
- matrix in two different ways. \n\rWe can verify that F(50) = 7 and F(1000) = 1019.\n\nFind
12
- F(10<sup>7</sup>).\n\n"
6
+ integers. \nSome positive integer matrices can be expressed as a square of a positive
7
+ integer matrix in two different ways. Here is an example:\n\n ![p420_matrix.gif]({{
8
+ images_dir }}/p420_matrix.gif)\n\nWe define F(<var>N</var>) as the number of the
9
+ 2x2 positive integer matrices which have a <dfn title=\"the sum of the elements
10
+ on the main diagonal\">trace</dfn> less than <var>N</var> and which can be expressed
11
+ as a square of a positive integer matrix in two different ways. \nWe can verify
12
+ that F(50) = 7 and F(1000) = 1019.\n\nFind F(10<sup>7</sup>).\n\n"
@@ -1,17 +1,12 @@
1
1
  ---
2
2
  :id: 421
3
3
  :name: Prime factors of <var>n</var><sup>15</sup>+1
4
- :url: http://projecteuler.net/problem=421
4
+ :url: https://projecteuler.net/problem=421
5
5
  :content: "Numbers of the form <var>n</var><sup>15</sup>+1 are composite for every
6
- integer <var>n</var> ![>]({{ images_dir }}/symbol_gt.gif) 1. \n\rFor positive integers
7
- <var>n</var> and <var>m</var> let <var>s</var>(<var>n,m</var>) be defined as the
8
- sum of the _distinct_ prime factors of <var>n</var><sup>15</sup>+1 not exceeding
9
- <var>m</var>.\n\n\rE.g. 2<sup>15</sup>+1 = 3 ![×]({{ images_dir }}/symbol_times.gif)3
10
- ![×]({{ images_dir }}/symbol_times.gif)11 ![×]({{ images_dir }}/symbol_times.gif)331.
11
- \ \n\rSo <var>s</var>(2,10) = 3 and <var>s</var>(2,1000) = 3+11+331 = 345. \n \n
12
- \ \n\r\rAlso 10<sup>15</sup>+1 = 7 ![×]({{ images_dir }}/symbol_times.gif)11 ![×]({{
13
- images_dir }}/symbol_times.gif)13 ![×]({{ images_dir }}/symbol_times.gif)211 ![×]({{
14
- images_dir }}/symbol_times.gif)241 ![×]({{ images_dir }}/symbol_times.gif)2161 ![×]({{
15
- images_dir }}/symbol_times.gif)9091. \n\rSo <var>s</var>(10,100) = 31 and <var>s</var>(10,1000)
16
- = 483. \n\nFind &Sum; <var>s</var>(<var>n</var>,10<sup>8</sup>) for 1 ![≤]({{ images_dir
17
- }}/symbol_le.gif) <var>n</var> ![≤]({{ images_dir }}/symbol_le.gif) 10<sup>11</sup>.\n\n"
6
+ integer <var>n</var> \\> 1. \nFor positive integers <var>n</var> and <var>m</var>
7
+ let <var>s</var>(<var>n,m</var>) be defined as the sum of the _distinct_ prime factors
8
+ of <var>n</var><sup>15</sup>+1 not exceeding <var>m</var>.\n\nE.g. 2<sup>15</sup>+1
9
+ = 3×3×11×331. \nSo <var>s</var>(2,10) = 3 and <var>s</var>(2,1000) = 3+11+331 =
10
+ 345. \n \nAlso 10<sup>15</sup>+1 = 7×11×13×211×241×2161×9091. \nSo <var>s</var>(10,100)
11
+ = 31 and <var>s</var>(10,1000) = 483. \n\nFind <var>s</var>(<var>n</var>,10<sup>8</sup>)
12
+ for 1 ≤ <var>n</var> 10<sup>11</sup>.\n\n"
@@ -1,20 +1,20 @@
1
1
  ---
2
2
  :id: 422
3
3
  :name: Sequence of points on a hyperbola
4
- :url: http://projecteuler.net/problem=422
4
+ :url: https://projecteuler.net/problem=422
5
5
  :content: "Let H be the hyperbola defined by the equation 12<var>x</var><sup>2</sup>
6
6
  + 7<var>x</var><var>y</var> - 12<var>y</var><sup>2</sup> = 625.\n\nNext, define
7
7
  X as the point (7, 1). It can be seen that X is in H.\n\nNow we define a sequence
8
- of points in H, {P<sub><var>i</var></sub> : <var>i</var> ![]({{ images_dir }}/symbol_ge.gif)
9
- 1}, as:\n\n- P<sub>1</sub> = (13, 61/4).\r\n- P<sub>2</sub> = (-43/6, -4).\r\n-
10
- For <var>i</var> > 2, P<sub><var>i</var></sub> is the unique point in H that is
11
- different from P<sub><var>i</var>-1</sub> and such that line P<sub><var>i</var></sub>P<sub><var>i</var>-1</sub>
12
- is parallel to line P<sub><var>i</var>-2</sub>X. It can be shown that P<sub><var>i</var></sub>
13
- is well-defined, and that its coordinates are always rational.\r\n ![]({{ images_dir
8
+ of points in H, {P<sub><var>i</var></sub> : <var>i</var> ≥ 1}, as:\n\n- P<sub>1</sub>
9
+ = (13, 61/4).\n- P<sub>2</sub> = (-43/6, -4).\n- For <var>i</var> \\> 2, P<sub><var>i</var></sub>
10
+ is the unique point in H that is different from P<sub><var>i</var>-1</sub> and such
11
+ that line P<sub><var>i</var></sub>P<sub><var>i</var>-1</sub> is parallel to line
12
+ P<sub><var>i</var>-2</sub>X. It can be shown that P<sub><var>i</var></sub> is well-defined,
13
+ and that its coordinates are always rational.\n ![p422_hyperbola.gif]({{ images_dir
14
14
  }}/p422_hyperbola.gif)\n\nYou are given that P<sub>3</sub> = (-19/2, -229/24), P<sub>4</sub>
15
15
  = (1267/144, -37/12) and P<sub>7</sub> = (17194218091/143327232, 274748766781/1719926784).\n\nFind
16
16
  P<sub><var>n</var></sub> for <var>n</var> = 11<sup>14</sup> in the following format:
17
17
  \ \nIf P<sub><var>n</var></sub> = (<var>a</var>/<var>b</var>, <var>c</var>/<var>d</var>)
18
18
  where the fractions are in lowest terms and the denominators are positive, then
19
- the answer is (<var>a</var> + <var>b</var> + <var>c</var> + <var>d</var>) mod 1 000 000 007.\n\nFor
19
+ the answer is (<var>a</var> + <var>b</var> + <var>c</var> + <var>d</var>) mod 1&nbsp;000&nbsp;000&nbsp;007.\n\nFor
20
20
  <var>n</var> = 7, the answer would have been: 806236837.\n\n"
@@ -1,18 +1,17 @@
1
1
  ---
2
2
  :id: 423
3
3
  :name: Consecutive die throws
4
- :url: http://projecteuler.net/problem=423
5
- :content: "Let <var>n</var> be a positive integer. \n\rA 6-sided die is thrown <var>n</var>
4
+ :url: https://projecteuler.net/problem=423
5
+ :content: "Let <var>n</var> be a positive integer. \nA 6-sided die is thrown <var>n</var>
6
6
  times. Let <var>c</var> be the number of pairs of consecutive throws that give the
7
7
  same value.\n\nFor example, if <var>n</var> = 7 and the values of the die throws
8
8
  are (1,1,5,6,6,6,3), then the following pairs of consecutive throws give the same
9
- value: \n\r(<u>1,1</u>,5,6,6,6,3) \n\r(1,1,5,<u>6,6</u>,6,3) \n\r(1,1,5,6,<u>6,6</u>,3)
10
- \ \n\rTherefore, <var>c</var> = 3 for (1,1,5,6,6,6,3).\n\nDefine C(<var>n</var>)
11
- as the number of outcomes of throwing a 6-sided die <var>n</var> times such that
12
- <var>c</var> does not exceed π(<var>n</var>).<sup>1</sup> \n\rFor example, C(3)
13
- = 216, C(4) = 1290, C(11) = 361912500 and C(24) = 4727547363281250000.\n\nDefine
14
- S(<var>L</var>) as ![∑]({{ images_dir }}/symbol_sum.gif) C(<var>n</var>) for 1 ![≤]({{
15
- images_dir }}/symbol_le.gif) <var>n</var> ![≤]({{ images_dir }}/symbol_le.gif) <var>L</var>.
16
- \ \n\rFor example, S(50) mod 1 000 000 007 = 832833871.\n\nFind S(50 000 000) mod
17
- 1 000 000 007.\n\n<sup>1</sup> π denotes the **prime-counting function** , i.e.
18
- π(<var>n</var>) is the number of primes ![≤]({{ images_dir }}/symbol_le.gif) <var>n</var>.\n\n"
9
+ value: \n(<u>1,1</u>,5,6,6,6,3) \n(1,1,5,<u>6,6</u>,6,3) \n(1,1,5,6,<u>6,6</u>,3)
10
+ \ \nTherefore, <var>c</var> = 3 for (1,1,5,6,6,6,3).\n\nDefine C(<var>n</var>) as
11
+ the number of outcomes of throwing a 6-sided die <var>n</var> times such that <var>c</var>
12
+ does not exceed π(<var>n</var>).<sup>1</sup> \nFor example, C(3) = 216, C(4) =
13
+ 1290, C(11) = 361912500 and C(24) = 4727547363281250000.\n\nDefine S(<var>L</var>)
14
+ as ∑ C(<var>n</var>) for 1 <var>n</var> <var>L</var>. \nFor example, S(50)
15
+ mod 1&nbsp;000&nbsp;000&nbsp;007 = 832833871.\n\nFind S(50&nbsp;000&nbsp;000) mod
16
+ 1&nbsp;000&nbsp;000&nbsp;007.\n\n<sup>1</sup> π denotes the **prime-counting function**
17
+ , i.e. π(<var>n</var>) is the number of primes ≤ <var>n</var>.\n\n"