euler-manager 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (645) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -1
  3. data/Rakefile +3 -0
  4. data/bin/euler +28 -9
  5. data/config/config.rb +1 -0
  6. data/data/answers.yml +430 -456
  7. data/data/images/blackdot.gif +0 -0
  8. data/data/images/bracket_left.gif +0 -0
  9. data/data/images/bracket_right.gif +0 -0
  10. data/data/images/p295_lenticular.gif +0 -0
  11. data/data/images/p296_bisector.gif +0 -0
  12. data/data/images/p303_formula100.gif +0 -0
  13. data/data/images/p303_formula10000.gif +0 -0
  14. data/data/images/p392_gridlines.png +0 -0
  15. data/data/images/p400_winning.png +0 -0
  16. data/data/images/p411_longpath.png +0 -0
  17. data/data/images/p412_table53.png +0 -0
  18. data/data/images/p412_tablenums.png +0 -0
  19. data/data/images/p422_hyperbola.gif +0 -0
  20. data/data/images/p428_necklace.png +0 -0
  21. data/data/images/p_015.gif +0 -0
  22. data/data/images/p_068_1.gif +0 -0
  23. data/data/images/p_068_2.gif +0 -0
  24. data/data/images/p_085.gif +0 -0
  25. data/data/images/p_086.gif +0 -0
  26. data/data/images/p_090.gif +0 -0
  27. data/data/images/p_091_1.gif +0 -0
  28. data/data/images/p_091_2.gif +0 -0
  29. data/data/images/p_107_1.gif +0 -0
  30. data/data/images/p_107_2.gif +0 -0
  31. data/data/images/p_109.gif +0 -0
  32. data/data/images/p_126.gif +0 -0
  33. data/data/images/p_128.gif +0 -0
  34. data/data/images/p_138.gif +0 -0
  35. data/data/images/p_139.gif +0 -0
  36. data/data/images/p_143_torricelli.gif +0 -0
  37. data/data/images/p_144_1.gif +0 -0
  38. data/data/images/p_144_2.gif +0 -0
  39. data/data/images/p_147.gif +0 -0
  40. data/data/images/p_150.gif +0 -0
  41. data/data/images/p_151.gif +0 -0
  42. data/data/images/p_152_sum.gif +0 -0
  43. data/data/images/p_153_formule1.gif +0 -0
  44. data/data/images/p_153_formule2.gif +0 -0
  45. data/data/images/p_153_formule5.gif +0 -0
  46. data/data/images/p_153_formule6.gif +0 -0
  47. data/data/images/p_154_pyramid.gif +0 -0
  48. data/data/images/p_155_capacitors1.gif +0 -0
  49. data/data/images/p_155_capsform.gif +0 -0
  50. data/data/images/p_155_capsmu.gif +0 -0
  51. data/data/images/p_161_k9.gif +0 -0
  52. data/data/images/p_161_trio1.gif +0 -0
  53. data/data/images/p_161_trio3.gif +0 -0
  54. data/data/images/p_163.gif +0 -0
  55. data/data/images/p_173_square_laminas.gif +0 -0
  56. data/data/images/p_177_quad.gif +0 -0
  57. data/data/images/p_184.gif +0 -0
  58. data/data/images/p_189_colours.gif +0 -0
  59. data/data/images/p_189_grid.gif +0 -0
  60. data/data/images/p_194_Fig.png +0 -0
  61. data/data/images/p_194_GraphA.png +0 -0
  62. data/data/images/p_194_GraphB.png +0 -0
  63. data/data/images/p_199_circles_in_circles.gif +0 -0
  64. data/data/images/p_201_laserbeam.gif +0 -0
  65. data/data/images/p_208_robotwalk.gif +0 -0
  66. data/data/images/p_215_crackfree.gif +0 -0
  67. data/data/images/p_220.gif +0 -0
  68. data/data/images/p_226_formula.gif +0 -0
  69. data/data/images/p_226_scoop2.gif +0 -0
  70. data/data/images/p_228.png +0 -0
  71. data/data/images/p_237.gif +0 -0
  72. data/data/images/p_244_example.gif +0 -0
  73. data/data/images/p_244_start.gif +0 -0
  74. data/data/images/p_244_target.gif +0 -0
  75. data/data/images/p_246_anim.gif +0 -0
  76. data/data/images/p_246_ellipse.gif +0 -0
  77. data/data/images/p_247_hypersquares.gif +0 -0
  78. data/data/images/p_251_cardano.gif +0 -0
  79. data/data/images/p_252_convexhole.gif +0 -0
  80. data/data/images/p_255_Example.gif +0 -0
  81. data/data/images/p_255_Heron.gif +0 -0
  82. data/data/images/p_256_tatami3.gif +0 -0
  83. data/data/images/p_257_bisector.gif +0 -0
  84. data/data/images/p_262_formula1.gif +0 -0
  85. data/data/images/p_264_TriangleCentres.gif +0 -0
  86. data/data/images/p_265_BinaryCircles.gif +0 -0
  87. data/data/images/p_270_CutSquare.gif +0 -0
  88. data/data/images/p_275_sculptures2.gif +0 -0
  89. data/data/images/p_281_pizza.gif +0 -0
  90. data/data/images/p_282_formula.gif +0 -0
  91. data/data/images/p_282formula3.gif +0 -0
  92. data/data/images/p_287_quadtree.gif +0 -0
  93. data/data/images/p_289_euler.gif +0 -0
  94. data/data/images/p_291_formula.gif +0 -0
  95. data/data/images/p_299_ThreeSimTri.gif +0 -0
  96. data/data/images/p_300_protein.gif +0 -0
  97. data/data/images/p_306_pstrip.gif +0 -0
  98. data/data/images/p_309_ladders.gif +0 -0
  99. data/data/images/p_311_biclinic.gif +0 -0
  100. data/data/images/p_312_sierpinsky8t.gif +0 -0
  101. data/data/images/p_312_sierpinskyAt.gif +0 -0
  102. data/data/images/p_313_sliding_game_1.gif +0 -0
  103. data/data/images/p_313_sliding_game_2.gif +0 -0
  104. data/data/images/p_314_landgrab.gif +0 -0
  105. data/data/images/p_315_clocks.gif +0 -0
  106. data/data/images/p_316_decexp1.gif +0 -0
  107. data/data/images/p_316_decexp2.gif +0 -0
  108. data/data/images/p_316_decexp3.gif +0 -0
  109. data/data/images/p_321_swapping_counters_1.gif +0 -0
  110. data/data/images/p_321_swapping_counters_2.gif +0 -0
  111. data/data/images/p_326_formula1.gif +0 -0
  112. data/data/images/p_326_formula2.gif +0 -0
  113. data/data/images/p_327_rooms_of_doom.gif +0 -0
  114. data/data/images/p_328_sum1.gif +0 -0
  115. data/data/images/p_328_sum2.gif +0 -0
  116. data/data/images/p_330_formula.gif +0 -0
  117. data/data/images/p_331_crossflips1.gif +0 -0
  118. data/data/images/p_331_crossflips2.gif +0 -0
  119. data/data/images/p_331_crossflips3.gif +0 -0
  120. data/data/images/p_332_spherical.jpg +0 -0
  121. data/data/images/p_332_sum.gif +0 -0
  122. data/data/images/p_334_beans.gif +0 -0
  123. data/data/images/p_334_cases.gif +0 -0
  124. data/data/images/p_334_lfloor.gif +0 -0
  125. data/data/images/p_334_oplus.gif +0 -0
  126. data/data/images/p_334_rfloor.gif +0 -0
  127. data/data/images/p_335_mancala.gif +0 -0
  128. data/data/images/p_335_sum.gif +0 -0
  129. data/data/images/p_336_maximix.gif +0 -0
  130. data/data/images/p_338_gridpaper.gif +0 -0
  131. data/data/images/p_340_formula.gif +0 -0
  132. data/data/images/p_344_silverdollar.gif +0 -0
  133. data/data/images/p_351_hexorchard.png +0 -0
  134. data/data/images/p_354_bee_honeycomb.png +0 -0
  135. data/data/images/p_356_cubicpoly1.gif +0 -0
  136. data/data/images/p_356_cubicpoly2.gif +0 -0
  137. data/data/images/p_361_Thue-Morse1.gif +0 -0
  138. data/data/images/p_364_comf_dist.gif +0 -0
  139. data/data/images/p_372_pencilray1.jpg +0 -0
  140. data/data/images/p_372_pencilray2.gif +0 -0
  141. data/data/images/p_380_mazes.gif +0 -0
  142. data/data/images/p_384_formula.gif +0 -0
  143. data/data/images/p_385_ellipsetriangle.png +0 -0
  144. data/data/images/p_394_eatpie.gif +0 -0
  145. data/data/images/p_395_pythagorean.gif +0 -0
  146. data/data/images/p_404_c_ellipse.gif +0 -0
  147. data/data/images/p_405_tile1.png +0 -0
  148. data/data/images/p_405_tile2.gif +0 -0
  149. data/data/images/p_420_matrix.gif +0 -0
  150. data/data/images/p_424_kakuro1.gif +0 -0
  151. data/data/images/p_426_baxball1.gif +0 -0
  152. data/data/images/p_426_baxball2.gif +0 -0
  153. data/data/images/p_430_flips.gif +0 -0
  154. data/data/images/sod_13.gif +115 -0
  155. data/data/images/spacer.gif +0 -0
  156. data/data/images/symbol_asymp.gif +0 -0
  157. data/data/images/symbol_cong.gif +0 -0
  158. data/data/images/symbol_ge.gif +0 -0
  159. data/data/images/symbol_gt.gif +0 -0
  160. data/data/images/symbol_implies.gif +0 -0
  161. data/data/images/symbol_lceil.gif +0 -0
  162. data/data/images/symbol_le.gif +0 -0
  163. data/data/images/symbol_lfloor.gif +0 -0
  164. data/data/images/symbol_lt.gif +0 -0
  165. data/data/images/symbol_maps.gif +0 -0
  166. data/data/images/symbol_minus.gif +0 -0
  167. data/data/images/symbol_ne.gif +0 -0
  168. data/data/images/symbol_plusmn.gif +0 -0
  169. data/data/images/symbol_radic.gif +0 -0
  170. data/data/images/symbol_rceil.gif +0 -0
  171. data/data/images/symbol_rfloor.gif +0 -0
  172. data/data/images/symbol_sum.gif +0 -0
  173. data/data/images/symbol_times.gif +0 -0
  174. data/data/problems/1.yml +5 -3
  175. data/data/problems/10.yml +3 -4
  176. data/data/problems/100.yml +7 -9
  177. data/data/problems/101.yml +32 -45
  178. data/data/problems/102.yml +11 -12
  179. data/data/problems/103.yml +18 -22
  180. data/data/problems/104.yml +9 -11
  181. data/data/problems/105.yml +12 -17
  182. data/data/problems/106.yml +14 -15
  183. data/data/problems/107.yml +16 -16
  184. data/data/problems/108.yml +17 -28
  185. data/data/problems/109.yml +27 -29
  186. data/data/problems/11.yml +24 -29
  187. data/data/problems/110.yml +11 -15
  188. data/data/problems/111.yml +27 -17
  189. data/data/problems/112.yml +13 -11
  190. data/data/problems/113.yml +11 -9
  191. data/data/problems/114.yml +46 -100
  192. data/data/problems/115.yml +15 -12
  193. data/data/problems/116.yml +33 -72
  194. data/data/problems/117.yml +36 -78
  195. data/data/problems/118.yml +5 -5
  196. data/data/problems/119.yml +9 -7
  197. data/data/problems/12.yml +8 -9
  198. data/data/problems/120.yml +7 -13
  199. data/data/problems/121.yml +9 -11
  200. data/data/problems/122.yml +21 -38
  201. data/data/problems/123.yml +9 -9
  202. data/data/problems/124.yml +24 -54
  203. data/data/problems/125.yml +7 -8
  204. data/data/problems/126.yml +12 -13
  205. data/data/problems/127.yml +21 -27
  206. data/data/problems/128.yml +19 -14
  207. data/data/problems/129.yml +9 -8
  208. data/data/problems/13.yml +52 -2
  209. data/data/problems/130.yml +12 -15
  210. data/data/problems/131.yml +9 -8
  211. data/data/problems/132.yml +7 -8
  212. data/data/problems/133.yml +9 -9
  213. data/data/problems/134.yml +7 -15
  214. data/data/problems/135.yml +9 -16
  215. data/data/problems/136.yml +9 -13
  216. data/data/problems/137.yml +22 -32
  217. data/data/problems/138.yml +11 -16
  218. data/data/problems/139.yml +11 -11
  219. data/data/problems/14.yml +14 -24
  220. data/data/problems/140.yml +18 -25
  221. data/data/problems/141.yml +10 -11
  222. data/data/problems/142.yml +3 -10
  223. data/data/problems/143.yml +13 -16
  224. data/data/problems/144.yml +23 -26
  225. data/data/problems/145.yml +7 -7
  226. data/data/problems/146.yml +6 -6
  227. data/data/problems/147.yml +7 -8
  228. data/data/problems/148.yml +15 -7
  229. data/data/problems/149.yml +26 -35
  230. data/data/problems/15.yml +7 -7
  231. data/data/problems/150.yml +18 -29
  232. data/data/problems/151.yml +17 -15
  233. data/data/problems/152.yml +11 -8
  234. data/data/problems/153.yml +38 -53
  235. data/data/problems/154.yml +10 -12
  236. data/data/problems/155.yml +12 -15
  237. data/data/problems/156.yml +20 -22
  238. data/data/problems/157.yml +26 -28
  239. data/data/problems/158.yml +13 -14
  240. data/data/problems/159.yml +15 -25
  241. data/data/problems/16.yml +5 -2
  242. data/data/problems/160.yml +3 -4
  243. data/data/problems/161.yml +6 -10
  244. data/data/problems/162.yml +10 -11
  245. data/data/problems/163.yml +13 -15
  246. data/data/problems/164.yml +3 -3
  247. data/data/problems/165.yml +25 -28
  248. data/data/problems/166.yml +7 -11
  249. data/data/problems/167.yml +10 -12
  250. data/data/problems/168.yml +7 -9
  251. data/data/problems/169.yml +4 -5
  252. data/data/problems/17.yml +7 -7
  253. data/data/problems/170.yml +7 -10
  254. data/data/problems/171.yml +7 -9
  255. data/data/problems/172.yml +3 -2
  256. data/data/problems/173.yml +9 -7
  257. data/data/problems/174.yml +13 -15
  258. data/data/problems/175.yml +13 -15
  259. data/data/problems/176.yml +5 -5
  260. data/data/problems/177.yml +13 -12
  261. data/data/problems/178.yml +5 -5
  262. data/data/problems/179.yml +3 -6
  263. data/data/problems/18.yml +13 -17
  264. data/data/problems/180.yml +20 -25
  265. data/data/problems/181.yml +7 -3
  266. data/data/problems/182.yml +22 -27
  267. data/data/problems/183.yml +17 -23
  268. data/data/problems/184.yml +11 -14
  269. data/data/problems/185.yml +17 -18
  270. data/data/problems/186.yml +16 -24
  271. data/data/problems/187.yml +9 -12
  272. data/data/problems/188.yml +5 -6
  273. data/data/problems/189.yml +5 -7
  274. data/data/problems/19.yml +7 -8
  275. data/data/problems/190.yml +7 -9
  276. data/data/problems/191.yml +9 -10
  277. data/data/problems/192.yml +14 -22
  278. data/data/problems/193.yml +5 -3
  279. data/data/problems/194.yml +11 -14
  280. data/data/problems/195.yml +7 -9
  281. data/data/problems/196.yml +13 -21
  282. data/data/problems/197.yml +7 -11
  283. data/data/problems/198.yml +13 -16
  284. data/data/problems/199.yml +10 -10
  285. data/data/problems/2.yml +6 -6
  286. data/data/problems/20.yml +10 -18
  287. data/data/problems/200.yml +8 -8
  288. data/data/problems/201.yml +14 -16
  289. data/data/problems/202.yml +11 -10
  290. data/data/problems/203.yml +11 -16
  291. data/data/problems/204.yml +7 -7
  292. data/data/problems/205.yml +6 -6
  293. data/data/problems/206.yml +2 -2
  294. data/data/problems/207.yml +13 -16
  295. data/data/problems/208.yml +8 -8
  296. data/data/problems/209.yml +11 -23
  297. data/data/problems/21.yml +8 -9
  298. data/data/problems/210.yml +6 -6
  299. data/data/problems/211.yml +7 -7
  300. data/data/problems/212.yml +26 -36
  301. data/data/problems/213.yml +6 -7
  302. data/data/problems/214.yml +10 -11
  303. data/data/problems/215.yml +11 -14
  304. data/data/problems/216.yml +7 -10
  305. data/data/problems/217.yml +14 -23
  306. data/data/problems/218.yml +9 -10
  307. data/data/problems/219.yml +10 -15
  308. data/data/problems/22.yml +7 -9
  309. data/data/problems/220.yml +15 -20
  310. data/data/problems/221.yml +10 -16
  311. data/data/problems/222.yml +5 -3
  312. data/data/problems/223.yml +6 -8
  313. data/data/problems/224.yml +6 -8
  314. data/data/problems/225.yml +6 -7
  315. data/data/problems/226.yml +9 -12
  316. data/data/problems/227.yml +9 -9
  317. data/data/problems/228.yml +14 -17
  318. data/data/problems/229.yml +17 -25
  319. data/data/problems/23.yml +11 -15
  320. data/data/problems/230.yml +15 -19
  321. data/data/problems/231.yml +8 -12
  322. data/data/problems/232.yml +9 -10
  323. data/data/problems/233.yml +7 -6
  324. data/data/problems/234.yml +14 -19
  325. data/data/problems/235.yml +4 -5
  326. data/data/problems/236.yml +20 -22
  327. data/data/problems/237.yml +14 -9
  328. data/data/problems/238.yml +21 -33
  329. data/data/problems/239.yml +5 -5
  330. data/data/problems/24.yml +7 -6
  331. data/data/problems/240.yml +7 -7
  332. data/data/problems/241.yml +9 -12
  333. data/data/problems/242.yml +7 -9
  334. data/data/problems/243.yml +14 -15
  335. data/data/problems/244.yml +19 -28
  336. data/data/problems/245.yml +22 -30
  337. data/data/problems/246.yml +10 -13
  338. data/data/problems/247.yml +14 -17
  339. data/data/problems/248.yml +5 -2
  340. data/data/problems/249.yml +3 -3
  341. data/data/problems/25.yml +12 -11
  342. data/data/problems/250.yml +3 -3
  343. data/data/problems/251.yml +11 -9
  344. data/data/problems/252.yml +24 -25
  345. data/data/problems/253.yml +19 -32
  346. data/data/problems/254.yml +13 -17
  347. data/data/problems/255.yml +40 -50
  348. data/data/problems/256.yml +31 -39
  349. data/data/problems/257.yml +10 -14
  350. data/data/problems/258.yml +7 -9
  351. data/data/problems/259.yml +14 -12
  352. data/data/problems/26.yml +17 -7
  353. data/data/problems/260.yml +21 -25
  354. data/data/problems/261.yml +13 -15
  355. data/data/problems/262.yml +15 -16
  356. data/data/problems/263.yml +13 -15
  357. data/data/problems/264.yml +15 -16
  358. data/data/problems/265.yml +10 -12
  359. data/data/problems/266.yml +6 -6
  360. data/data/problems/267.yml +13 -10
  361. data/data/problems/268.yml +5 -4
  362. data/data/problems/269.yml +10 -11
  363. data/data/problems/27.yml +15 -21
  364. data/data/problems/270.yml +13 -13
  365. data/data/problems/271.yml +7 -9
  366. data/data/problems/272.yml +8 -11
  367. data/data/problems/273.yml +13 -17
  368. data/data/problems/274.yml +16 -19
  369. data/data/problems/275.yml +13 -15
  370. data/data/problems/276.yml +5 -7
  371. data/data/problems/277.yml +17 -20
  372. data/data/problems/278.yml +20 -28
  373. data/data/problems/279.yml +4 -3
  374. data/data/problems/28.yml +6 -13
  375. data/data/problems/280.yml +9 -9
  376. data/data/problems/281.yml +10 -13
  377. data/data/problems/282.yml +9 -6
  378. data/data/problems/283.yml +8 -8
  379. data/data/problems/284.yml +15 -18
  380. data/data/problems/285.yml +11 -11
  381. data/data/problems/286.yml +7 -8
  382. data/data/problems/287.yml +22 -32
  383. data/data/problems/288.yml +10 -11
  384. data/data/problems/289.yml +14 -15
  385. data/data/problems/29.yml +13 -20
  386. data/data/problems/290.yml +3 -4
  387. data/data/problems/291.yml +3 -6
  388. data/data/problems/292.yml +8 -9
  389. data/data/problems/293.yml +9 -10
  390. data/data/problems/294.yml +6 -6
  391. data/data/problems/295.yml +16 -21
  392. data/data/problems/296.yml +9 -11
  393. data/data/problems/297.yml +12 -15
  394. data/data/problems/298.yml +29 -29
  395. data/data/problems/299.yml +15 -21
  396. data/data/problems/3.yml +3 -3
  397. data/data/problems/30.yml +7 -8
  398. data/data/problems/300.yml +15 -16
  399. data/data/problems/301.yml +15 -17
  400. data/data/problems/302.yml +13 -14
  401. data/data/problems/303.yml +9 -7
  402. data/data/problems/304.yml +10 -15
  403. data/data/problems/305.yml +6 -10
  404. data/data/problems/306.yml +20 -24
  405. data/data/problems/307.yml +7 -8
  406. data/data/problems/308.yml +19 -30
  407. data/data/problems/309.yml +11 -12
  408. data/data/problems/31.yml +11 -14
  409. data/data/problems/310.yml +10 -15
  410. data/data/problems/311.yml +11 -17
  411. data/data/problems/312.yml +10 -11
  412. data/data/problems/313.yml +13 -13
  413. data/data/problems/314.yml +23 -25
  414. data/data/problems/315.yml +39 -45
  415. data/data/problems/316.yml +13 -13
  416. data/data/problems/317.yml +6 -7
  417. data/data/problems/318.yml +35 -57
  418. data/data/problems/319.yml +15 -19
  419. data/data/problems/32.yml +9 -10
  420. data/data/problems/320.yml +9 -8
  421. data/data/problems/321.yml +8 -9
  422. data/data/problems/322.yml +6 -8
  423. data/data/problems/323.yml +12 -15
  424. data/data/problems/324.yml +10 -13
  425. data/data/problems/325.yml +15 -21
  426. data/data/problems/326.yml +15 -8
  427. data/data/problems/327.yml +19 -23
  428. data/data/problems/328.yml +28 -31
  429. data/data/problems/329.yml +12 -13
  430. data/data/problems/33.yml +9 -9
  431. data/data/problems/330.yml +17 -36
  432. data/data/problems/331.yml +16 -22
  433. data/data/problems/332.yml +9 -11
  434. data/data/problems/333.yml +17 -20
  435. data/data/problems/334.yml +22 -34
  436. data/data/problems/335.yml +11 -12
  437. data/data/problems/336.yml +18 -20
  438. data/data/problems/337.yml +9 -11
  439. data/data/problems/338.yml +27 -37
  440. data/data/problems/339.yml +9 -9
  441. data/data/problems/34.yml +7 -3
  442. data/data/problems/340.yml +8 -10
  443. data/data/problems/341.yml +12 -14
  444. data/data/problems/342.yml +9 -13
  445. data/data/problems/343.yml +18 -25
  446. data/data/problems/344.yml +16 -17
  447. data/data/problems/345.yml +17 -22
  448. data/data/problems/346.yml +7 -7
  449. data/data/problems/347.yml +9 -12
  450. data/data/problems/348.yml +7 -8
  451. data/data/problems/349.yml +8 -9
  452. data/data/problems/35.yml +7 -4
  453. data/data/problems/350.yml +12 -14
  454. data/data/problems/351.yml +8 -9
  455. data/data/problems/352.yml +38 -42
  456. data/data/problems/353.yml +17 -21
  457. data/data/problems/354.yml +11 -13
  458. data/data/problems/355.yml +4 -4
  459. data/data/problems/356.yml +6 -6
  460. data/data/problems/357.yml +5 -5
  461. data/data/problems/358.yml +16 -25
  462. data/data/problems/359.yml +19 -22
  463. data/data/problems/36.yml +7 -4
  464. data/data/problems/360.yml +8 -8
  465. data/data/problems/361.yml +14 -15
  466. data/data/problems/362.yml +16 -28
  467. data/data/problems/363.yml +22 -23
  468. data/data/problems/364.yml +9 -11
  469. data/data/problems/365.yml +7 -13
  470. data/data/problems/366.yml +19 -22
  471. data/data/problems/367.yml +14 -15
  472. data/data/problems/368.yml +18 -35
  473. data/data/problems/369.yml +7 -11
  474. data/data/problems/37.yml +7 -6
  475. data/data/problems/370.yml +10 -13
  476. data/data/problems/371.yml +8 -9
  477. data/data/problems/372.yml +9 -12
  478. data/data/problems/373.yml +5 -6
  479. data/data/problems/374.yml +17 -21
  480. data/data/problems/375.yml +13 -17
  481. data/data/problems/376.yml +19 -21
  482. data/data/problems/377.yml +6 -7
  483. data/data/problems/378.yml +8 -11
  484. data/data/problems/379.yml +9 -11
  485. data/data/problems/38.yml +9 -13
  486. data/data/problems/380.yml +14 -17
  487. data/data/problems/381.yml +12 -18
  488. data/data/problems/382.yml +16 -19
  489. data/data/problems/383.yml +7 -9
  490. data/data/problems/384.yml +20 -24
  491. data/data/problems/385.yml +12 -16
  492. data/data/problems/386.yml +9 -11
  493. data/data/problems/387.yml +14 -15
  494. data/data/problems/388.yml +6 -8
  495. data/data/problems/389.yml +8 -8
  496. data/data/problems/39.yml +7 -6
  497. data/data/problems/390.yml +9 -14
  498. data/data/problems/391.yml +21 -25
  499. data/data/problems/392.yml +16 -17
  500. data/data/problems/393.yml +5 -6
  501. data/data/problems/394.yml +15 -18
  502. data/data/problems/395.yml +12 -13
  503. data/data/problems/396.yml +17 -22
  504. data/data/problems/397.yml +13 -16
  505. data/data/problems/398.yml +8 -9
  506. data/data/problems/399.yml +18 -18
  507. data/data/problems/4.yml +5 -4
  508. data/data/problems/40.yml +11 -14
  509. data/data/problems/400.yml +10 -11
  510. data/data/problems/401.yml +6 -7
  511. data/data/problems/402.yml +16 -21
  512. data/data/problems/403.yml +12 -14
  513. data/data/problems/404.yml +14 -16
  514. data/data/problems/405.yml +10 -11
  515. data/data/problems/406.yml +35 -41
  516. data/data/problems/407.yml +9 -16
  517. data/data/problems/408.yml +9 -9
  518. data/data/problems/409.yml +5 -7
  519. data/data/problems/41.yml +5 -4
  520. data/data/problems/410.yml +10 -13
  521. data/data/problems/411.yml +15 -19
  522. data/data/problems/412.yml +11 -15
  523. data/data/problems/413.yml +8 -8
  524. data/data/problems/414.yml +29 -34
  525. data/data/problems/415.yml +12 -15
  526. data/data/problems/416.yml +7 -7
  527. data/data/problems/417.yml +16 -17
  528. data/data/problems/418.yml +9 -12
  529. data/data/problems/419.yml +13 -18
  530. data/data/problems/42.yml +9 -10
  531. data/data/problems/420.yml +5 -6
  532. data/data/problems/421.yml +14 -25
  533. data/data/problems/422.yml +16 -18
  534. data/data/problems/423.yml +16 -18
  535. data/data/problems/424.yml +18 -19
  536. data/data/problems/425.yml +11 -12
  537. data/data/problems/426.yml +20 -21
  538. data/data/problems/427.yml +11 -13
  539. data/data/problems/428.yml +21 -25
  540. data/data/problems/429.yml +6 -6
  541. data/data/problems/43.yml +15 -13
  542. data/data/problems/430.yml +14 -16
  543. data/data/problems/44.yml +9 -12
  544. data/data/problems/45.yml +11 -11
  545. data/data/problems/46.yml +9 -14
  546. data/data/problems/47.yml +11 -16
  547. data/data/problems/48.yml +5 -3
  548. data/data/problems/49.yml +7 -6
  549. data/data/problems/5.yml +5 -4
  550. data/data/problems/50.yml +11 -6
  551. data/data/problems/51.yml +9 -11
  552. data/data/problems/52.yml +5 -4
  553. data/data/problems/53.yml +15 -24
  554. data/data/problems/54.yml +29 -39
  555. data/data/problems/55.yml +16 -17
  556. data/data/problems/56.yml +5 -7
  557. data/data/problems/57.yml +10 -11
  558. data/data/problems/58.yml +11 -18
  559. data/data/problems/59.yml +11 -19
  560. data/data/problems/6.yml +13 -9
  561. data/data/problems/60.yml +5 -6
  562. data/data/problems/61.yml +18 -26
  563. data/data/problems/62.yml +5 -5
  564. data/data/problems/63.yml +5 -3
  565. data/data/problems/64.yml +52 -126
  566. data/data/problems/65.yml +21 -47
  567. data/data/problems/66.yml +13 -23
  568. data/data/problems/67.yml +10 -13
  569. data/data/problems/68.yml +15 -19
  570. data/data/problems/69.yml +18 -10
  571. data/data/problems/7.yml +5 -2
  572. data/data/problems/70.yml +10 -12
  573. data/data/problems/71.yml +11 -13
  574. data/data/problems/72.yml +11 -12
  575. data/data/problems/73.yml +11 -12
  576. data/data/problems/74.yml +25 -37
  577. data/data/problems/75.yml +10 -12
  578. data/data/problems/76.yml +4 -4
  579. data/data/problems/77.yml +4 -4
  580. data/data/problems/78.yml +13 -8
  581. data/data/problems/79.yml +7 -7
  582. data/data/problems/8.yml +14 -8
  583. data/data/problems/80.yml +7 -7
  584. data/data/problems/81.yml +9 -15
  585. data/data/problems/82.yml +10 -15
  586. data/data/problems/83.yml +10 -19
  587. data/data/problems/84.yml +36 -59
  588. data/data/problems/85.yml +7 -5
  589. data/data/problems/86.yml +11 -11
  590. data/data/problems/87.yml +7 -8
  591. data/data/problems/88.yml +30 -49
  592. data/data/problems/89.yml +13 -14
  593. data/data/problems/9.yml +6 -9
  594. data/data/problems/90.yml +16 -18
  595. data/data/problems/91.yml +10 -15
  596. data/data/problems/92.yml +14 -25
  597. data/data/problems/93.yml +13 -17
  598. data/data/problems/94.yml +7 -7
  599. data/data/problems/95.yml +13 -19
  600. data/data/problems/96.yml +24 -40
  601. data/data/problems/97.yml +7 -10
  602. data/data/problems/98.yml +9 -12
  603. data/data/problems/99.yml +9 -12
  604. data/euler-manager.gemspec +1 -0
  605. data/example/1/README.md +4 -4
  606. data/example/15/README.md +8 -0
  607. data/example/15/python/15.py +5 -0
  608. data/example/15/python/euler.py +0 -0
  609. data/example/2/README.md +7 -5
  610. data/example/Eulerfile.rb +1 -0
  611. data/lib/euler/problem.rb +6 -1
  612. data/lib/euler/solution.rb +4 -2
  613. data/lib/euler/version.rb +1 -1
  614. data/rake/clean.rake +16 -0
  615. data/rake/update.rake +88 -0
  616. data/spec/euler/solution_spec.rb +2 -1
  617. data/templates/Eulerfile.rb +12 -0
  618. metadata +189 -29
  619. data/data/problems/431.yml +0 -33
  620. data/data/problems/432.yml +0 -13
  621. data/data/problems/433.yml +0 -18
  622. data/data/problems/434.yml +0 -32
  623. data/data/problems/435.yml +0 -21
  624. data/data/problems/436.yml +0 -21
  625. data/data/problems/437.yml +0 -22
  626. data/data/problems/438.yml +0 -29
  627. data/data/problems/439.yml +0 -17
  628. data/data/problems/440.yml +0 -21
  629. data/data/problems/441.yml +0 -23
  630. data/data/problems/442.yml +0 -9
  631. data/data/problems/443.yml +0 -13
  632. data/data/problems/444.yml +0 -28
  633. data/data/problems/445.yml +0 -37
  634. data/data/problems/446.yml +0 -29
  635. data/data/problems/447.yml +0 -31
  636. data/data/problems/448.yml +0 -14
  637. data/data/problems/449.yml +0 -17
  638. data/data/problems/450.yml +0 -26
  639. data/data/problems/451.yml +0 -15
  640. data/data/problems/452.yml +0 -8
  641. data/data/problems/453.yml +0 -16
  642. data/data/problems/454.yml +0 -17
  643. data/data/problems/455.yml +0 -16
  644. data/data/problems/456.yml +0 -15
  645. data/scripts/update_problems +0 -68
@@ -2,18 +2,17 @@
2
2
  :id: 395
3
3
  :name: Pythagorean tree
4
4
  :url: http://projecteuler.net/problem=395
5
- :content: "\r\n<p>\r\nThe <b>Pythagorean tree</b> is a fractal generated by the following
6
- procedure:\r\n</p>\r\n\r\n<p>\r\nStart with a unit square. Then, calling one of
7
- the sides its base (in the animation, the bottom side is the base):\r\n</p>\n<ol>\n<li>
8
- Attach a right triangle to the side opposite the base, with the hypotenuse coinciding
9
- with that side and with the sides in a 3-4-5 ratio. Note that the smaller side of
10
- the triangle must be on the 'right' side with respect to the base (see animation).</li>\r\n<li>
11
- Attach a square to each leg of the right triangle, with one of its sides coinciding
12
- with that leg.</li>\r\n<li> Repeat this procedure for both squares, considering
13
- as their bases the sides touching the triangle.</li>\r\n</ol>\r\nThe resulting figure,
14
- after an infinite number of iterations, is the Pythagorean tree.\r\n\r\n\r\n<div
15
- align=\"center\"><img src=\"project/images/p_395_pythagorean.gif\"></div>\r\n\r\n<p>\r\nIt
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
+ ![](/home/will/src/euler-manager/config/../data/images/p_395_pythagorean.gif)\n\nIt
16
15
  can be shown that there exists at least one rectangle, whose sides are parallel
17
16
  to the largest square of the Pythagorean tree, which encloses the Pythagorean tree
18
- completely.\r\n</p>\r\n<p>\r\nFind the smallest area possible for such a bounding
19
- rectangle, and give your answer rounded to 10 decimal places.\r\n</p>\r\n"
17
+ completely.\n\nFind the smallest area possible for such a bounding rectangle, and
18
+ give your answer rounded to 10 decimal places.\n\n"
@@ -2,27 +2,22 @@
2
2
  :id: 396
3
3
  :name: Weak Goodstein sequence
4
4
  :url: http://projecteuler.net/problem=396
5
- :content: "\r\n<p>\r\nFor any positive integer n, the <b>nth weak Goodstein sequence</b>
6
- {g<sub>1</sub>, g<sub>2</sub>, g<sub>3</sub>, ...} is defined as:\r\n</p>\n<ul>\n<li>
7
- g<sub>1</sub> = <var>n</var>\r\n</li>\n<li> for <var>k</var> <img src=\"images/symbol_gt.gif\"
8
- width=\"10\" height=\"10\" alt=\"&gt;\" border=\"0\" style=\"vertical-align:middle;\">
5
+ :content: "For any positive integer n, the **nth weak Goodstein sequence** {g<sub>1</sub>,
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> ![>](/home/will/src/euler-manager/config/../data/images/symbol_gt.gif)
9
8
  1, g<sub><var>k</var></sub> is obtained by writing g<sub><var>k</var>-1</sub> in
10
9
  base <var>k</var>, interpreting it as a base <var>k</var> + 1 number, and subtracting
11
- 1.\r\n</li>\n</ul>\r\nThe sequence terminates when g<sub><var>k</var></sub> becomes
12
- 0.\r\n\r\n<p>\r\nFor example, the 6th weak Goodstein sequence is {6, 11, 17, 25,
13
- ...}:\r\n</p>\n<ul>\n<li> g<sub>1</sub> = 6.\r\n</li>\n<li> g<sub>2</sub> = 11 since
14
- 6 = 110<sub>2</sub>, 110<sub>3</sub> = 12, and 12 - 1 = 11.\r\n</li>\n<li> g<sub>3</sub>
15
- = 17 since 11 = 102<sub>3</sub>, 102<sub>4</sub> = 18, and 18 - 1 = 17.\r\n</li>\n<li>
16
- g<sub>4</sub> = 25 since 17 = 101<sub>4</sub>, 101<sub>5</sub> = 26, and 26 - 1
17
- = 25.\r\n</li>\n</ul>\r\nand so on.\r\n\r\n<p>\r\nIt can be shown that every weak
18
- Goodstein sequence terminates.\r\n</p>\r\n<p>\r\nLet G(<var>n</var>) be the number
19
- of nonzero elements in the <var>n</var>th weak Goodstein sequence.<br>\r\nIt can
20
- be verified that G(2) = 3, G(4) = 21 and G(6) = 381.<br>\r\nIt can also be verified
21
- that ΣG(<var>n</var>) = 2517 for 1 <img src=\"images/symbol_le.gif\" width=\"10\"
22
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var>
23
- <img src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\"
24
- style=\"vertical-align:middle;\"> 8.\r\n</p>\r\n<p>\r\nFind the last 9 digits of
25
- ΣG(<var>n</var>) for 1 <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\"
26
- alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var> <img src=\"images/symbol_lt.gif\"
27
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\">
28
- 16.\r\n</p>\r\n"
10
+ 1.\r\n\rThe sequence terminates when g<sub><var>k</var></sub> becomes 0.\r\r\n\nFor
11
+ example, the 6th weak Goodstein sequence is {6, 11, 17, 25, ...}:\n\n- g<sub>1</sub>
12
+ = 6.\r\n- g<sub>2</sub> = 11 since 6 = 110<sub>2</sub>, 110<sub>3</sub> = 12, and
13
+ 12 - 1 = 11.\r\n- g<sub>3</sub> = 17 since 11 = 102<sub>3</sub>, 102<sub>4</sub>
14
+ = 18, and 18 - 1 = 17.\r\n- g<sub>4</sub> = 25 since 17 = 101<sub>4</sub>, 101<sub>5</sub>
15
+ = 26, and 26 - 1 = 25.\r\n\rand so on.\r\r\n\nIt can be shown that every weak Goodstein
16
+ sequence terminates.\n\nLet G(<var>n</var>) be the number of nonzero elements in
17
+ the <var>n</var>th weak Goodstein sequence. \n\rIt can be verified that G(2) =
18
+ 3, G(4) = 21 and G(6) = 381. \n\rIt can also be verified that ΣG(<var>n</var>)
19
+ = 2517 for 1 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
20
+ <var>n</var> ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)
21
+ 8.\n\nFind the last 9 digits of ΣG(<var>n</var>) for 1 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
22
+ <var>n</var> ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)
23
+ 16.\n\n"
@@ -2,19 +2,16 @@
2
2
  :id: 397
3
3
  :name: Triangle on parabola
4
4
  :url: http://projecteuler.net/problem=397
5
- :content: "\r\n<p>\r\nOn the parabola <var>y</var> = <var>x</var><sup>2</sup>/<var>k</var>,
6
- three points A(<var>a</var>, <var>a</var><sup>2</sup>/<var>k</var>), B(<var>b</var>,
7
- <var>b</var><sup>2</sup>/<var>k</var>) and C(<var>c</var>, <var>c</var><sup>2</sup>/<var>k</var>)
8
- are chosen.\r\n</p>\r\n<p>\r\nLet F(<var>K</var>, <var>X</var>) be the number of
9
- the integer quadruplets (<var>k</var>, <var>a</var>, <var>b</var>, <var>c</var>)
10
- such that at least one angle of the triangle ABC is 45-degree, with 1 <img src=\"images/symbol_le.gif\"
11
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>k</var>
12
- <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
13
- style=\"vertical-align:middle;\"><var>K</var> and -<var>X</var> <img src=\"images/symbol_le.gif\"
14
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>a</var>
15
- <img src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\"
16
- style=\"vertical-align:middle;\"><var>b</var> <img src=\"images/symbol_lt.gif\"
17
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"><var>c</var>
18
- <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
19
- style=\"vertical-align:middle;\"><var>X</var>.\r\n</p>\r\n<p>\r\nFor example, F(1,
20
- 10) = 41 and F(10, 100) = 12492.<br>\r\nFind F(10<sup>6</sup>, 10<sup>9</sup>).\r\n</p>\r\n"
5
+ :content: "On the parabola <var>y</var> = <var>x</var><sup>2</sup>/<var>k</var>, three
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
+ and C(<var>c</var>, <var>c</var><sup>2</sup>/<var>k</var>) are chosen.\n\nLet F(<var>K</var>,
8
+ <var>X</var>) be the number of the integer quadruplets (<var>k</var>, <var>a</var>,
9
+ <var>b</var>, <var>c</var>) such that at least one angle of the triangle ABC is
10
+ 45-degree, with 1 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
11
+ <var>k</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
12
+ <var>K</var> and -<var>X</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
13
+ <var>a</var> ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)
14
+ <var>b</var> ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)
15
+ <var>c</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
16
+ <var>X</var>.\n\nFor example, F(1, 10) = 41 and F(10, 100) = 12492. \n\rFind F(10<sup>6</sup>,
17
+ 10<sup>9</sup>).\n\n"
@@ -2,12 +2,11 @@
2
2
  :id: 398
3
3
  :name: Cutting rope
4
4
  :url: http://projecteuler.net/problem=398
5
- :content: "\r\n<p>\r\nInside a rope of length <var>n</var>, <var>n</var>-1 points
6
- are placed with distance 1 from each other and from the endpoints. Among these points,
7
- we choose <var>m</var>-1 points at random and cut the rope at these points to create
8
- <var>m</var> segments.\r\n</p>\r\n<p>\r\nLet E(<var>n</var>, <var>m</var>) be the
9
- expected length of the second-shortest segment.\r\nFor example, E(3, 2) = 2 and
10
- E(8, 3) = 16/7.\r\nNote that if multiple segments have the same shortest length
11
- the length of the second-shortest segment is defined as the same as the shortest
12
- length.\r\n</p>\r\n<p>\r\nFind E(10<sup>7</sup>, 100).\r\nGive your answer rounded
13
- to 5 decimal places behind the decimal point.\r\n</p>\r\n"
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"
@@ -2,21 +2,21 @@
2
2
  :id: 399
3
3
  :name: Squarefree Fibonacci Numbers
4
4
  :url: http://projecteuler.net/problem=399
5
- :content: "\r\n<p>\r\nThe first 15 fibonacci numbers are:<br>\r\n1,1,2,3,5,8,13,21,34,55,89,144,233,377,610.<br>\r\nIt
6
- can be seen that 8 and 144 are not squarefree: 8 is divisible by 4 and 144 is divisible
7
- by 4 and by 9.<br> \r\nSo the first 13 squarefree fibonacci numbers are:<br>\r\n1,1,2,3,5,13,21,34,55,89,233,377
8
- and 610.\r\n</p>\r\n<p>\r\nThe 200th squarefree fibonacci number is:\r\n971183874599339129547649988289594072811608739584170445.<br>\r\nThe
9
- last sixteen digits of this number are: 1608739584170445 and in scientific notation
10
- this number can be written as 9.7e53.\r\n</p>\r\n<p>\r\nFind the 100 000 000th squarefree
11
- fibonacci number.<br>\r\nGive as your answer its last sixteen digits followed by
12
- a comma followed by the number in scientific notation (rounded to one digit after
13
- the decimal point).<br>\r\nFor the 200th squarefree number the answer would have
14
- been: 1608739584170445,9.7e53\r\n</p>\r\n<p>\r\n<font size=\"-1\">\r\nNote:<br>
15
- \r\nFor this problem, assume that for every prime p, the first fibonacci number
16
- divisible by p is not divisible by p<sup>2</sup> (this is part of <b>Wall's conjecture</b>).
17
- This has been verified for primes <img src=\"images/symbol_le.gif\" width=\"10\"
18
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"> 3·10<sup>15</sup>,
19
- but has not been proven in general.<br>\r\n\r\nIf it happens that the conjecture
20
- is false, then the accepted answer to this problem isn't guaranteed to be the 100
21
- 000 000th squarefree fibonacci number, rather it represents only a lower bound for
22
- that number.\r\n</font>\r\n</p>\r\n\r\n\r\n\r\n"
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"
data/data/problems/4.yml CHANGED
@@ -2,7 +2,8 @@
2
2
  :id: 4
3
3
  :name: Largest palindrome product
4
4
  :url: http://projecteuler.net/problem=4
5
- :content: "\r\n\n<p>A palindromic number reads the same both ways. The largest palindrome
6
- made from the product of two 2-digit numbers is 9009 = 91 <img src=\"images/symbol_times.gif\"
7
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\">
8
- 99.</p>\n<p>Find the largest palindrome made from the product of two 3-digit numbers.</p>\n\r\n"
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 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) 99.
7
+
8
+ Find the largest palindrome made from the product of two 3-digit numbers.
9
+
data/data/problems/40.yml CHANGED
@@ -2,17 +2,14 @@
2
2
  :id: 40
3
3
  :name: Champernowne's constant
4
4
  :url: http://projecteuler.net/problem=40
5
- :content: "\r\n<p>An irrational decimal fraction is created by concatenating the positive
6
- integers:</p>\r\n<p style=\"text-align:center;\">0.12345678910<span style=\"color:#dd0000;font-size:14pt;\">1</span>112131415161718192021...</p>\r\n<p>It
7
- can be seen that the 12<sup>th</sup> digit of the fractional part is 1.</p>\r\n<p>If
8
- <i>d</i><sub><i>n</i></sub> represents the <i>n</i><sup>th</sup> digit of the fractional
9
- part, find the value of the following expression.</p>\r\n<p style=\"text-align:center;\"><i>d</i><sub>1</sub><img
10
- src=\"images/symbol_times.gif\" width=\"9\" height=\"9\" alt=\"×\" border=\"0\"
11
- style=\"vertical-align:middle;\"><i>d</i><sub>10</sub><img src=\"images/symbol_times.gif\"
12
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\"><i>d</i><sub>100</sub><img
13
- src=\"images/symbol_times.gif\" width=\"9\" height=\"9\" alt=\"×\" border=\"0\"
14
- style=\"vertical-align:middle;\"><i>d</i><sub>1000</sub><img src=\"images/symbol_times.gif\"
15
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\"><i>d</i><sub>10000</sub><img
16
- src=\"images/symbol_times.gif\" width=\"9\" height=\"9\" alt=\"×\" border=\"0\"
17
- style=\"vertical-align:middle;\"><i>d</i><sub>100000</sub><img src=\"images/symbol_times.gif\"
18
- width=\"9\" height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\"><i>d</i><sub>1000000</sub></p>\r\n\r\n"
5
+ :content: |+
6
+ An irrational decimal fraction is created by concatenating the positive integers:
7
+
8
+ 0.123456789101112131415161718192021...
9
+
10
+ It can be seen that the 12<sup>th</sup> digit of the fractional part is 1.
11
+
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
+
14
+ _d_<sub>1</sub> ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) _d_<sub>10</sub> ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) _d_<sub>100</sub> ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) _d_<sub>1000</sub> ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) _d_<sub>10000</sub> ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) _d_<sub>100000</sub> ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif) _d_<sub>1000000</sub>
15
+
@@ -2,17 +2,16 @@
2
2
  :id: 400
3
3
  :name: Fibonacci tree game
4
4
  :url: http://projecteuler.net/problem=400
5
- :content: "\r\n<p>\r\nA <b>Fibonacci tree</b> is a binary tree recursively defined
6
- as:</p>\n<ul>\n<li>T(0) is the empty tree.\r\n</li>\n<li>T(1) is the binary tree
7
- with only one node.\r\n</li>\n<li>T(<var>k</var>) consists of a root node that has
8
- T(<var>k</var>-1) and T(<var>k</var>-2) as children.\r\n</li>\n</ul>\n<p>\r\nOn
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
9
8
  such a tree two players play a take-away game. On each turn a player selects a node
10
- and removes that node along with the subtree rooted at that node.<br>\r\nThe player
11
- who is forced to take the root node of the entire tree loses.</p>\n<p>\r\n\r\n</p>\n<p>\r\nHere
12
- are the winning moves of the first player on the first turn for T(<var>k</var>)
13
- from <var>k</var>=1 to <var>k</var>=6.\r\n</p>\n<p align=\"center\"><img src=\"project/images/p400_winning.png\"></p>\r\n\r\n\r\n\r\nLet
9
+ and removes that node along with the subtree rooted at that node. \n\rThe player
10
+ who is forced to take the root node of the entire tree loses.\n\nHere are the winning
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![](/home/will/src/euler-manager/config/../data/images/p400_winning.png)\n\n\r\r\r\rLet
14
13
  <var>f</var>(<var>k</var>) be the number of winning moves of the first player (i.e.
15
14
  the moves for which the second player has no winning strategy) on the first turn
16
- of the game when this game is played on T(<var>k</var>).\r\n\r\n\r\n<p>\r\nFor example,
17
- <var>f</var>(5) = 1 and <var>f</var>(10) = 17.\r\n</p>\r\n\r\n<p>\r\nFind <var>f</var>(10000).
18
- Give the last 18 digits of your answer.\r\n</p>\r\n"
15
+ of the game when this game is played on T(<var>k</var>).\r\r\r\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"
@@ -2,10 +2,9 @@
2
2
  :id: 401
3
3
  :name: Sum of squares of divisors
4
4
  :url: http://projecteuler.net/problem=401
5
- :content: "\r\n<p>\r\nThe divisors of 6 are 1,2,3 and 6.<br>\r\nThe sum of the squares
6
- of these numbers is 1+4+9+36=50.\r\n</p>\r\n<p>\r\nLet sigma2(n) represent the sum
7
- of the squares of the divisors of n.\r\nThus sigma2(6)=50.\r\n</p>\r\nLet SIGMA2
8
- represent the summatory function of sigma2, that is SIGMA2(n)=<img src=\"images/symbol_sum.gif\"
9
- width=\"11\" height=\"14\" alt=\"∑\" border=\"0\" style=\"vertical-align:middle;\">sigma2(i)
10
- for i=1 to n.<br>\r\nThe first 6 values of SIGMA2 are: 1,6,16,37,63 and 113.\r\n\r\n<p>\r\nFind
11
- SIGMA2(10<sup>15</sup>) modulo 10<sup>9</sup>. \r\n</p>\r\n"
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)= ![∑](/home/will/src/euler-manager/config/../data/images/symbol_sum.gif)sigma2(i)
9
+ for 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"
@@ -2,24 +2,19 @@
2
2
  :id: 402
3
3
  :name: Integer-valued polynomials
4
4
  :url: http://projecteuler.net/problem=402
5
- :content: "\r\n<p>\r\nIt can be shown that the polynomial <var>n</var><sup>4</sup>
6
- + 4<var>n</var><sup>3</sup> + 2<var>n</var><sup>2</sup> + 5<var>n</var> is a multiple
7
- of 6 for every integer <var>n</var>. It can also be shown that 6 is the largest
8
- integer satisfying this property.\r\n</p>\r\n<p>\r\nDefine M(<var>a</var>, <var>b</var>,
9
- <var>c</var>) as the maximum <var>m</var> such that <var>n</var><sup>4</sup> + <var>a</var><var>n</var><sup>3</sup>
10
- + <var>b</var><var>n</var><sup>2</sup> + <var>c</var><var>n</var> is a multiple
11
- of <var>m</var> for all integers <var>n</var>. For example, M(4, 2, 5) = 6.\r\n</p>\r\n<p>\r\nAlso,
12
- define S(<var>N</var>) as the sum of M(<var>a</var>, <var>b</var>, <var>c</var>)
13
- for all 0 <img src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\"
14
- border=\"0\" style=\"vertical-align:middle;\"><var>a</var>, <var>b</var>, <var>c</var>
15
- <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
16
- style=\"vertical-align:middle;\"><var>N</var>.\r\n</p>\r\n<p>\r\nWe can verify that
17
- S(10) = 1972 and S(10000) = 2024258331114.\r\n</p>\r\n<p>\r\nLet F<sub><var>k</var></sub>
18
- be the Fibonacci sequence:<br>\r\nF<sub>0</sub> = 0, F<sub>1</sub> = 1 and<br>\r\nF<sub><var>k</var></sub>
19
- = F<sub><var>k</var>-1</sub> + F<sub><var>k</var>-2</sub> for <var>k</var> <img
20
- src=\"images/symbol_ge.gif\" width=\"10\" height=\"12\" alt=\"≥\" border=\"0\" style=\"vertical-align:middle;\">
21
- 2.\r\n</p>\r\n<p>\r\nFind the last 9 digits of Σ S(F<sub><var>k</var></sub>) for
22
- 2 <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
23
- style=\"vertical-align:middle;\"><var>k</var> <img src=\"images/symbol_le.gif\"
24
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">
25
- 1234567890123.\r\n</p>\r\n"
5
+ :content: "It can be shown that the polynomial <var>n</var><sup>4</sup> + 4<var>n</var><sup>3</sup>
6
+ + 2<var>n</var><sup>2</sup> + 5<var>n</var> is a multiple of 6 for every integer
7
+ <var>n</var>. It can also be shown that 6 is the largest integer satisfying this
8
+ property.\n\nDefine M(<var>a</var>, <var>b</var>, <var>c</var>) as the maximum <var>m</var>
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
+ + <var>c</var><var>n</var> is a multiple of <var>m</var> for all integers <var>n</var>.
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 ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)
13
+ <var>a</var>, <var>b</var>, <var>c</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
14
+ <var>N</var>.\n\nWe can verify that S(10) = 1972 and S(10000) = 2024258331114.\n\nLet
15
+ F<sub><var>k</var></sub> be the Fibonacci sequence: \n\rF<sub>0</sub> = 0, F<sub>1</sub>
16
+ = 1 and \n\rF<sub><var>k</var></sub> = F<sub><var>k</var>-1</sub> + F<sub><var>k</var>-2</sub>
17
+ for <var>k</var> ![≥](/home/will/src/euler-manager/config/../data/images/symbol_ge.gif)
18
+ 2.\n\nFind the last 9 digits of Σ S(F<sub><var>k</var></sub>) for 2 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
19
+ <var>k</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
20
+ 1234567890123.\n\n"
@@ -2,18 +2,16 @@
2
2
  :id: 403
3
3
  :name: Lattice points enclosed by parabola and line
4
4
  :url: http://projecteuler.net/problem=403
5
- :content: "\r\n<p>\r\nFor integers <var>a</var> and <var>b</var>, we define <var>D</var>(<var>a</var>,
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
- and the line <var>y</var> = <var>a</var>·<var>x</var> + <var>b</var>:<br><var>D</var>(<var>a</var>,
8
- <var>b</var>) = { (<var>x</var>, <var>y</var>) | <var>x</var><sup>2</sup><img src=\"images/symbol_le.gif\"
9
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>y</var>
10
- <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
11
- style=\"vertical-align:middle;\"><var>a</var>·<var>x</var> + <var>b</var> }.\r\n</p>\r\n<p>\r\nL(<var>a</var>,
12
- <var>b</var>) is defined as the number of lattice points contained in <var>D</var>(<var>a</var>,
13
- <var>b</var>).<br>\r\nFor example, L(1, 2) = 8 and L(2, -1) = 1.\r\n</p>\r\n<p>\r\nWe
14
- also define S(<var>N</var>) as the sum of L(<var>a</var>, <var>b</var>) for all
15
- the pairs (<var>a</var>, <var>b</var>) such that the area of <var>D</var>(<var>a</var>,
16
- <var>b</var>) is a rational number and |<var>a</var>|,|<var>b</var>| <img src=\"images/symbol_le.gif\"
17
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>N</var>.<br>\r\nWe
18
- can verify that S(5) = 344 and S(100) = 26709528.\r\n</p>\r\n<p>\r\nFind S(10<sup>12</sup>).
19
- Give your answer mod 10<sup>8</sup>.\r\n</p>\r\n"
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> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
9
+ <var>y</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
10
+ <var>a</var>·<var>x</var> + <var>b</var> }.\n\nL(<var>a</var>, <var>b</var>) is
11
+ defined as the number of lattice points contained in <var>D</var>(<var>a</var>,
12
+ <var>b</var>). \n\rFor example, L(1, 2) = 8 and L(2, -1) = 1.\n\nWe also define
13
+ S(<var>N</var>) as the sum of L(<var>a</var>, <var>b</var>) for all the pairs (<var>a</var>,
14
+ <var>b</var>) such that the area of <var>D</var>(<var>a</var>, <var>b</var>) is
15
+ a rational number and |<var>a</var>|,|<var>b</var>| ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
16
+ <var>N</var>. \n\rWe can verify that S(5) = 344 and S(100) = 26709528.\n\nFind
17
+ S(10<sup>12</sup>). Give your answer mod 10<sup>8</sup>.\n\n"
@@ -2,20 +2,18 @@
2
2
  :id: 404
3
3
  :name: Crisscross Ellipses
4
4
  :url: http://projecteuler.net/problem=404
5
- :content: "\r\n<p>\r\nE<sub><var>a</var></sub> is an ellipse with an equation of the
6
- form x<sup>2</sup> + 4y<sup>2</sup> = 4<var>a</var><sup>2</sup>.<br>\r\nE<sub><var>a</var></sub>'
7
- is the rotated image of E<sub><var>a</var></sub> by θ degrees counterclockwise around
8
- the origin O(0, 0) for 0° <img src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\"
9
- alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"> θ <img src=\"images/symbol_lt.gif\"
10
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\">
11
- 90°.\r\n</p>\r\n\r\n<div align=\"center\">\r\n<img src=\"project/images/p_404_c_ellipse.gif\">\n</div>\r\n\r\n<p>\r\n<var>b</var>
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° ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)
9
+ θ ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) 90°.\n\n
10
+ ![](/home/will/src/euler-manager/config/../data/images/p_404_c_ellipse.gif)\n\n<var>b</var>
12
11
  is the distance to the origin of the two intersection points closest to the origin
13
- and <var>c</var> is the distance of the two other intersection points.<br>\r\nWe
14
- call an ordered triplet (<var>a</var>, <var>b</var>, <var>c</var>) a <i>canonical
15
- ellipsoidal triplet</i> if <var>a</var>, <var>b</var> and <var>c</var> are positive
16
- integers.<br>\r\nFor example, (209, 247, 286) is a canonical ellipsoidal triplet.\r\n</p>\r\n\r\n<p>\r\nLet
17
- C(<var>N</var>) be the number of distinct canonical ellipsoidal triplets (<var>a</var>,
18
- <var>b</var>, <var>c</var>) for <var>a</var> <img src=\"images/symbol_le.gif\" width=\"10\"
19
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>N</var>.<br>\r\nIt
20
- can be verified that C(10<sup>3</sup>) = 7, C(10<sup>4</sup>) = 106 and C(10<sup>6</sup>)
21
- = 11845.\r\n</p>\r\n\r\n<p>\r\nFind C(10<sup>17</sup>).\r\n</p>\r\n"
12
+ and <var>c</var> is the distance of the two other intersection points. \n\rWe call
13
+ an ordered triplet (<var>a</var>, <var>b</var>, <var>c</var>) a _canonical ellipsoidal
14
+ triplet_ if <var>a</var>, <var>b</var> and <var>c</var> are positive integers. \n\rFor
15
+ example, (209, 247, 286) is a canonical ellipsoidal triplet.\n\nLet C(<var>N</var>)
16
+ be the number of distinct canonical ellipsoidal triplets (<var>a</var>, <var>b</var>,
17
+ <var>c</var>) for <var>a</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
18
+ <var>N</var>. \n\rIt can be verified that C(10<sup>3</sup>) = 7, C(10<sup>4</sup>)
19
+ = 106 and C(10<sup>6</sup>) = 11845.\n\nFind C(10<sup>17</sup>).\n\n"
@@ -2,14 +2,13 @@
2
2
  :id: 405
3
3
  :name: A rectangular tiling
4
4
  :url: http://projecteuler.net/problem=405
5
- :content: "\r\n<p>\r\nWe wish to tile a rectangle whose length is twice its width.<br>\r\nLet
6
- <var>T</var>(0) be the tiling consisting of a single rectangle.<br>\r\nFor <var>n</var>
7
- &gt; 0, let <var>T</var>(<var>n</var>) be obtained from <var>T</var>(<var>n</var>-1)
8
- by replacing all tiles in the following manner:\r\n</p>\r\n\r\n<div align=\"center\">\r\n<img
9
- src=\"project/images/p_405_tile1.png\">\n</div>\r\n\r\n<p>\r\nThe following animation
10
- demonstrates the tilings <var>T</var>(<var>n</var>) for <var>n</var> from 0 to 5:\r\n</p>\r\n\r\n<div
11
- align=\"center\">\r\n<img src=\"project/images/p_405_tile2.gif\">\n</div>\r\n\r\n<p>\r\nLet
12
- <var>f</var>(<var>n</var>) be the number of points where four tiles meet in <var>T</var>(<var>n</var>).<br>\r\nFor
13
- example, <var>f</var>(1) = 0, <var>f</var>(4) = 82 and <var>f</var>(10<sup>9</sup>)
14
- mod 17<sup>7</sup> = 126897180.\r\n</p>\r\n\r\n<p>\r\nFind <var>f</var>(10<sup><var>k</var></sup>)
15
- for <var>k</var> = 10<sup>18</sup>, give your answer modulo 17<sup>7</sup>.\r\n</p>\r\n"
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>)
7
+ be obtained from <var>T</var>(<var>n</var>-1) by replacing all tiles in the following
8
+ manner:\n\n ![](/home/will/src/euler-manager/config/../data/images/p_405_tile1.png)\n\nThe
9
+ following animation demonstrates the tilings <var>T</var>(<var>n</var>) for <var>n</var>
10
+ from 0 to 5:\n\n ![](/home/will/src/euler-manager/config/../data/images/p_405_tile2.gif)\n\nLet
11
+ <var>f</var>(<var>n</var>) be the number of points where four tiles meet in <var>T</var>(<var>n</var>).
12
+ \ \n\rFor 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"
@@ -2,45 +2,39 @@
2
2
  :id: 406
3
3
  :name: Guessing Game
4
4
  :url: http://projecteuler.net/problem=406
5
- :content: "\r\n<p>We are trying to find a hidden number selected from the set of integers
6
- {1, 2, ..., <var>n</var>} by asking questions. \r\nEach number (question) we ask,
7
- we get one of three possible answers:<br></p>\n<ul>\n<li> \"Your guess is lower
8
- than the hidden number\" (and you incur a cost of <var>a</var>), or</li>\r\n<li>
9
- \"Your guess is higher than the hidden number\" (and you incur a cost of <var>b</var>),
10
- or</li>\r\n<li> \"Yes, that's it!\" (and the game ends).</li>\r\n</ul>\n<p>Given
11
- the value of <var>n</var>, <var>a</var>, and <var>b</var>, an <i>optimal strategy</i>
12
- minimizes the total cost <u>for the worst possible case</u>.</p>\r\n\r\n<p>For example,
13
- if <var>n</var> = 5, <var>a</var> = 2, and <var>b</var> = 3, then we may begin by
14
- asking \"<b>2</b>\" as our first question.</p>\r\n\r\n<p>If we are told that 2 is
15
- higher than the hidden number (for a cost of <var>b</var>=3), then we are sure that
16
- \"<b>1</b>\" is the hidden number (for a total cost of <span style=\"color:blue;\"><b>3</b></span>).<br>\r\nIf
17
- we are told that 2 is lower than the hidden number (for a cost of <var>a</var>=2),
18
- then our next question will be \"<b>4</b>\".<br>\r\nIf we are told that 4 is higher
19
- than the hidden number (for a cost of <var>b</var>=3), then we are sure that \"<b>3</b>\"
20
- is the hidden number (for a total cost of 2+3=<span style=\"color:blue;\"><b>5</b></span>).<br>\r\nIf
21
- we are told that 4 is lower than the hidden number (for a cost of <var>a</var>=2),
22
- then we are sure that \"<b>5</b>\" is the hidden number (for a total cost of 2+2=<span
23
- style=\"color:blue;\"><b>4</b></span>).<br>\r\nThus, the worst-case cost achieved
24
- by this strategy is <span style=\"color:red;\"><b>5</b></span>. It can also be shown
25
- that this is the lowest worst-case cost that can be achieved. \r\nSo, in fact, we
26
- have just described an optimal strategy for the given values of <var>n</var>, <var>a</var>,
27
- and <var>b</var>.</p>\r\n\r\n<p>Let C(<var>n</var>, <var>a</var>, <var>b</var>)
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
18
+ 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>)
28
26
  be the worst-case cost achieved by an optimal strategy for the given values of <var>n</var>,
29
- <var>a</var>, and <var>b</var>.</p>\r\n\r\n<p>Here are a few examples:<br>\r\nC(5,
30
- 2, 3) = 5<br>\r\nC(500, <img src=\"images/symbol_radic.gif\" width=\"14\" height=\"16\"
31
- alt=\"√\" border=\"0\" style=\"vertical-align:middle;\">2, <img src=\"images/symbol_radic.gif\"
32
- width=\"14\" height=\"16\" alt=\"√\" border=\"0\" style=\"vertical-align:middle;\">3)
33
- = 13.22073197...<br>\r\nC(20000, 5, 7) = 82<br>\r\nC(2000000, <img src=\"images/symbol_radic.gif\"
34
- width=\"14\" height=\"16\" alt=\"√\" border=\"0\" style=\"vertical-align:middle;\">5,
35
- <img src=\"images/symbol_radic.gif\" width=\"14\" height=\"16\" alt=\"√\" border=\"0\"
36
- style=\"vertical-align:middle;\">7) = 49.63755955...</p>\r\n\r\n<p>Let F<sub><var>k</var></sub>
37
- be the Fibonacci numbers: F<sub><var>k</var></sub> = F<sub><var>k</var>-1</sub>
38
- + F<sub><var>k</var>-2</sub> with base cases F<sub>1</sub> = F<sub>2</sub> = 1.<br>Find
39
- <img src=\"images/symbol_sum.gif\" width=\"11\" height=\"14\" alt=\"∑\" border=\"0\"
40
- style=\"vertical-align:middle;\"><sub>1<img src=\"images/symbol_le.gif\" width=\"10\"
41
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>k</var><img
42
- src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">30</sub> C(10<sup>12</sup>,
43
- <img src=\"images/symbol_radic.gif\" width=\"14\" height=\"16\" alt=\"√\" border=\"0\"
44
- style=\"vertical-align:middle;\"><var>k</var>, <img src=\"images/symbol_radic.gif\"
45
- width=\"14\" height=\"16\" alt=\"√\" border=\"0\" style=\"vertical-align:middle;\">F<sub><var>k</var></sub>),
46
- and give your answer rounded to 8 decimal places behind the decimal point.</p>\r\n"
27
+ <var>a</var>, and <var>b</var>.\n\nHere are a few examples: \n\rC(5, 2, 3) = 5
28
+ \ \n\rC(500, ![√](/home/will/src/euler-manager/config/../data/images/symbol_radic.gif)2,
29
+ ![√](/home/will/src/euler-manager/config/../data/images/symbol_radic.gif)3) = 13.22073197...
30
+ \ \n\rC(20000, 5, 7) = 82 \n\rC(2000000, ![√](/home/will/src/euler-manager/config/../data/images/symbol_radic.gif)5,
31
+ ![√](/home/will/src/euler-manager/config/../data/images/symbol_radic.gif)7) = 49.63755955...\n\nLet
32
+ F<sub><var>k</var></sub> be the Fibonacci numbers: F<sub><var>k</var></sub> = F<sub><var>k</var>-1</sub>
33
+ + F<sub><var>k</var>-2</sub> with base cases F<sub>1</sub> = F<sub>2</sub> = 1.
34
+ \ \nFind ![∑](/home/will/src/euler-manager/config/../data/images/symbol_sum.gif)<sub>1<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;\"><var>k</var><img src=\"%7B%7B%20images_dir%20%7D%7D/symbol_le.gif\"
37
+ width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">30</sub> C(10<sup>12</sup>,
38
+ ![√](/home/will/src/euler-manager/config/../data/images/symbol_radic.gif)<var>k</var>,
39
+ ![√](/home/will/src/euler-manager/config/../data/images/symbol_radic.gif)F<sub><var>k</var></sub>),
40
+ and give your answer rounded to 8 decimal places behind the decimal point.\n\n"