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
data/data/problems/29.yml CHANGED
@@ -2,23 +2,16 @@
2
2
  :id: 29
3
3
  :name: Distinct powers
4
4
  :url: http://projecteuler.net/problem=29
5
- :content: "\r\n\n<p>Consider all integer combinations of <i>a</i><sup><i>b</i></sup>
6
- for 2 <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
7
- style=\"vertical-align:middle;\"><i>a</i> <img src=\"images/symbol_le.gif\" width=\"10\"
8
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"> 5 and 2 <img
9
- src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><i>b</i>
10
- <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
11
- style=\"vertical-align:middle;\"> 5:</p>\n<blockquote>2<sup>2</sup>=4, 2<sup>3</sup>=8,
12
- 2<sup>4</sup>=16, 2<sup>5</sup>=32<br>\n3<sup>2</sup>=9, 3<sup>3</sup>=27, 3<sup>4</sup>=81,
13
- 3<sup>5</sup>=243<br>\n4<sup>2</sup>=16, 4<sup>3</sup>=64, 4<sup>4</sup>=256, 4<sup>5</sup>=1024<br>\n5<sup>2</sup>=25,
14
- 5<sup>3</sup>=125, 5<sup>4</sup>=625, 5<sup>5</sup>=3125<br>\n</blockquote>\n<p>If
15
- they are then placed in numerical order, with any repeats removed, we get the following
16
- sequence of 15 distinct terms:</p>\n<p style=\"text-align:center;\">4, 8, 9, 16,
17
- 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125</p>\n<p>How many distinct terms
18
- are in the sequence generated by <i>a</i><sup><i>b</i></sup> for 2 <img src=\"images/symbol_le.gif\"
19
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><i>a</i>
20
- <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
21
- style=\"vertical-align:middle;\"> 100 and 2 <img src=\"images/symbol_le.gif\" width=\"10\"
22
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><i>b</i> <img
23
- src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">
24
- 100?</p>\n\r\n"
5
+ :content: "Consider all integer combinations of _a_<sup><i>b</i></sup> for 2 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
6
+ _a_ ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) 5 and
7
+ 2 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) _b_ ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
8
+ 5:\n\n> 2<sup>2</sup>=4, 2<sup>3</sup>=8, 2<sup>4</sup>=16, 2<sup>5</sup>=32 \n>
9
+ 3<sup>2</sup>=9, 3<sup>3</sup>=27, 3<sup>4</sup>=81, 3<sup>5</sup>=243 \n> 4<sup>2</sup>=16,
10
+ 4<sup>3</sup>=64, 4<sup>4</sup>=256, 4<sup>5</sup>=1024 \n> 5<sup>2</sup>=25, 5<sup>3</sup>=125,
11
+ 5<sup>4</sup>=625, 5<sup>5</sup>=3125\n\nIf they are then placed in numerical order,
12
+ with any repeats removed, we get the following sequence of 15 distinct terms:\n\n4,
13
+ 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125\n\nHow many distinct
14
+ terms are in the sequence generated by _a_<sup><i>b</i></sup> for 2 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
15
+ _a_ ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) 100 and
16
+ 2 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) _b_ ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
17
+ 100?\n\n"
@@ -2,7 +2,6 @@
2
2
  :id: 290
3
3
  :name: Digital Signature
4
4
  :url: http://projecteuler.net/problem=290
5
- :content: "\r\n<p>How many integers 0 <img src=\"images/symbol_le.gif\" width=\"10\"
6
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var>
7
- &amp;lt 10<sup>18</sup> have the property that the sum of the digits of <var>n</var>
8
- equals the sum of digits of 137<var>n</var>?</p>\r\n"
5
+ :content: |+
6
+ How many integers 0 ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) <var>n</var> &lt 10<sup>18</sup> have the property that the sum of the digits of <var>n</var> equals the sum of digits of 137<var>n</var>?
7
+
@@ -2,9 +2,6 @@
2
2
  :id: 291
3
3
  :name: Panaitopol Primes
4
4
  :url: http://projecteuler.net/problem=291
5
- :content: "\r\n<p>\r\nA prime number <var>p</var> is called a Panaitopol prime if
6
- <img src=\"project/images/p_291_formula.gif\" style=\"vertical-align:middle\"> for
7
- some positive integers<br><var>x</var> and <var>y</var>.\r\n</p>\r\n<p>\r\nFind
8
- how many Panaitopol primes are less than 5<img src=\"images/symbol_times.gif\" width=\"9\"
9
- height=\"9\" alt=\"×\" border=\"0\" style=\"vertical-align:middle;\">10<sup>15</sup>.\r\n</p>\r\n\r\n
10
- \ \r\n"
5
+ :content: "A prime number <var>p</var> is called a Panaitopol prime if ![](/home/will/src/euler-manager/config/../data/images/p_291_formula.gif)
6
+ for some positive integers \n <var>x</var> and <var>y</var>.\n\nFind how many Panaitopol
7
+ primes are less than 5 ![×](/home/will/src/euler-manager/config/../data/images/symbol_times.gif)10<sup>15</sup>.\n\n"
@@ -2,12 +2,11 @@
2
2
  :id: 292
3
3
  :name: Pythagorean Polygons
4
4
  :url: http://projecteuler.net/problem=292
5
- :content: "\r\n<p>We shall define a <i>pythagorean polygon</i> to be a <b>convex
6
- polygon</b> with the following properties:<br></p>\n<ul>\n<li>there are at least
7
- three vertices,</li>\r\n<li>no three vertices are aligned,</li>\r\n<li>each vertex
8
- has <b>integer coordinates</b>,</li>\r\n<li>each edge has <b>integer length</b>.</li>\n</ul>\n<p>For
9
- a given integer <var>n</var>, define P(<var>n</var>) as the number of distinct pythagorean
10
- polygons for which the perimeter is <img src=\"images/symbol_le.gif\" width=\"10\"
11
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>n</var>.<br>\r\nPythagorean
12
- polygons should be considered distinct as long as none is a translation of another.</p>\r\n\r\n<p>You
13
- are given that P(4) = 1, P(30) = 3655 and P(60) = 891045.<br>\r\nFind P(120).</p>\r\n"
5
+ :content: "We shall define a _pythagorean polygon_ to be a **convex polygon** with
6
+ the following properties:\n\n- there are at least three vertices,\n- no three vertices
7
+ are aligned,\n- each vertex has **integer coordinates** ,\n- each edge has **integer
8
+ length** .\n\nFor a given integer <var>n</var>, define P(<var>n</var>) as the number
9
+ of distinct pythagorean polygons for which the perimeter is ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) <var>n</var>.
10
+ \ \n\rPythagorean polygons should be considered distinct as long as none is a translation
11
+ of another.\n\nYou are given that P(4)= 1, P(30) = 3655 and P(60) = 891045. \n\rFind
12
+ P(120).\n\n"
@@ -2,14 +2,13 @@
2
2
  :id: 293
3
3
  :name: Pseudo-Fortunate Numbers
4
4
  :url: http://projecteuler.net/problem=293
5
- :content: "\r\n<p>\r\nAn even positive integer N will be called admissible, if it
6
- is a power of 2 or its distinct prime factors are consecutive primes.<br>\r\nThe
7
- first twelve admissible numbers are 2,4,6,8,12,16,18,24,30,32,36,48.\r\n</p>\r\n<p>\r\nIf
8
- N is admissible, the smallest integer M <img src=\"images/symbol_gt.gif\" width=\"10\"
9
- height=\"10\" alt=\"&gt;\" border=\"0\" style=\"vertical-align:middle;\"> 1 such
10
- that N+M is prime, will be called the pseudo-Fortunate number for N.\r\n</p>\r\n<p>\r\nFor
5
+ :content: "An even positive integer N will be called admissible, if it is a power
6
+ of 2 or its distinct prime factors are consecutive primes. \n\rThe first twelve
7
+ admissible numbers are 2,4,6,8,12,16,18,24,30,32,36,48.\n\nIf N is admissible, the
8
+ smallest integer M ![>](/home/will/src/euler-manager/config/../data/images/symbol_gt.gif)
9
+ 1 such that N+M is prime, will be called the pseudo-Fortunate number for N.\n\nFor
11
10
  example, N=630 is admissible since it is even and its distinct prime factors are
12
- the consecutive primes 2,3,5 and 7.<br> \r\nThe next prime number after 631 is 641;
13
- hence, the pseudo-Fortunate number for 630 is M=11.<br>\r\nIt can also be seen that
14
- the pseudo-Fortunate number for 16 is 3.\r\n</p>\r\n<p>\r\nFind the sum of all distinct
15
- pseudo-Fortunate numbers for admissible numbers N less than 10<sup>9</sup>.\r\n</p>\r\n\r\n\r\n\r\n"
11
+ the consecutive primes 2,3,5 and 7. \n \rThe next prime number after 631 is 641;
12
+ hence, the pseudo-Fortunate number for 630 is M=11. \n\rIt can also be seen that
13
+ the pseudo-Fortunate number for 16 is 3.\n\nFind the sum of all distinct pseudo-Fortunate
14
+ numbers for admissible numbers N less than 10<sup>9</sup>.\n\n"
@@ -2,9 +2,9 @@
2
2
  :id: 294
3
3
  :name: 'Sum of digits - experience #23'
4
4
  :url: http://projecteuler.net/problem=294
5
- :content: "\r\n<p>\r\nFor a positive integer k, define d(k) as the sum of the digits
6
- of k in its usual decimal representation.\r\nThus d(42) = 4+2 = 6.\r\n</p>\r\n<p>\r\nFor
7
- a positive integer n, define S(n) as the number of positive integers k n with the
8
- following properties :\r\n</p>\n<ul>\n<li>k is divisible by 23 and\r\n</li>\n<li>d(k)
9
- = 23.\r\n</li>\n</ul>\r\nYou are given that S(9) = 263626 and S(42) = 6377168878570056.\r\n\r\n<p>\r\nFind
10
- S(11<sup>12</sup>) and give your answer mod 10<sup>9</sup>.\r\n</p>\r\n\r\n"
5
+ :content: "For a positive integer k, define d(k) as the sum of the digits of k in
6
+ its usual decimal representation.\rThus d(42) = 4+2 = 6.\n\nFor a positive integer
7
+ n, define S(n) as the number of positive integers k n with the following properties
8
+ :\n\n- k is divisible by 23 and\r\n- d(k) = 23.\r\n\r\rYou are given that S(9) =
9
+ 263626 and S(42) = 6377168878570056.\r\r\n\nFind S(11<sup>12</sup>) and give your
10
+ answer mod 10<sup>9</sup>.\n\n"
@@ -2,25 +2,20 @@
2
2
  :id: 295
3
3
  :name: Lenticular holes
4
4
  :url: http://projecteuler.net/problem=295
5
- :content: "\r\n<p>We call the convex area enclosed by two circles a <i>lenticular
6
- hole</i> if:\r\n</p>\n<ul>\n<li>The centres of both circles are on lattice points.</li>\r\n<li>The
7
- two circles intersect at two distinct lattice points.</li>\r\n<li>The interior of
8
- the convex area enclosed by both circles does not contain any lattice points.\r\n</li>\r\n</ul>\n<p>Consider
9
- the circles:<br>\r\nC<sub>0</sub>: <var>x</var><sup>2</sup>+<var>y</var><sup>2</sup>=25<br>\r\nC<sub>1</sub>:
10
- (<var>x</var>+4)<sup>2</sup>+(<var>y</var>-4)<sup>2</sup>=1<br>\r\nC<sub>2</sub>:
11
- (<var>x</var>-12)<sup>2</sup>+(<var>y</var>-4)<sup>2</sup>=65\r\n</p>\r\n<p>\r\nThe
5
+ :content: "We call the convex area enclosed by two circles a _lenticular hole_ if:\n\n-
6
+ The centres of both circles are on lattice points.\n- The two circles intersect
7
+ at two distinct lattice points.\n- The interior of the convex area enclosed by both
8
+ circles does not contain any lattice points.\r\n\nConsider the circles: \n\rC<sub>0</sub>:
9
+ <var>x</var><sup>2</sup>+<var>y</var><sup>2</sup>=25 \n\rC<sub>1</sub>: (<var>x</var>+4)<sup>2</sup>+(<var>y</var>-4)<sup>2</sup>=1
10
+ \ \n\rC<sub>2</sub>: (<var>x</var>-12)<sup>2</sup>+(<var>y</var>-4)<sup>2</sup>=65\n\nThe
12
11
  circles C<sub>0</sub>, C<sub>1</sub> and C<sub>2</sub> are drawn in the picture
13
- below.</p>\r\n<div align=\"center\"><img src=\"project/images/p295_lenticular.gif\"></div>\r\n<p>\r\nC<sub>0</sub>
14
- and C<sub>1</sub> form a lenticular hole, as well as C<sub>0</sub> and C<sub>2</sub>.</p>\r\n<p>\r\nWe
15
- call an ordered pair of positive real numbers (r<sub>1</sub>, r<sub>2</sub>) a <i>lenticular
16
- pair</i> if there exist two circles with radii r<sub>1</sub> and r<sub>2</sub> that
17
- form a lenticular hole.\r\nWe can verify that (1, 5) and (5, <img src=\"images/symbol_radic.gif\"
18
- width=\"14\" height=\"16\" alt=\"√\" border=\"0\" style=\"vertical-align:middle;\">65)
19
- are the lenticular pairs of the example above.</p>\r\n<p>\r\nLet L(N) be the number
20
- of <b>distinct</b> lenticular pairs (r<sub>1</sub>, r<sub>2</sub>) for which 0 <img
21
- src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\"
22
- style=\"vertical-align:middle;\"> r<sub>1</sub><img src=\"images/symbol_le.gif\"
23
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">
24
- r<sub>2</sub><img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\"
25
- border=\"0\" style=\"vertical-align:middle;\"> N.<br>\r\nWe can verify that L(10)
26
- = 30 and L(100) = 3442.</p>\r\n<p>\r\nFind L(100 000).\r\n</p>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
12
+ below.\n\n ![](/home/will/src/euler-manager/config/../data/images/p295_lenticular.gif)\n\nC<sub>0</sub>
13
+ and C<sub>1</sub> form a lenticular hole, as well as C<sub>0</sub> and C<sub>2</sub>.\n\nWe
14
+ call an ordered pair of positive real numbers (r<sub>1</sub>, r<sub>2</sub>) a _lenticular
15
+ pair_ if there exist two circles with radii r<sub>1</sub> and r<sub>2</sub> that
16
+ form a lenticular hole.\rWe can verify that (1, 5) and (5, ![√](/home/will/src/euler-manager/config/../data/images/symbol_radic.gif)65)
17
+ are the lenticular pairs of the example above.\n\nLet L(N) be the number of **distinct**
18
+ lenticular pairs (r<sub>1</sub>, r<sub>2</sub>) for which 0 ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)
19
+ r<sub>1</sub> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
20
+ r<sub>2</sub> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
21
+ N. \n\rWe can verify that L(10) = 30 and L(100) = 3442.\n\nFind L(100 000).\n\n"
@@ -2,14 +2,12 @@
2
2
  :id: 296
3
3
  :name: Angular Bisector and Tangent
4
4
  :url: http://projecteuler.net/problem=296
5
- :content: "\r\n<p>\r\nGiven is an integer sided triangle <var>ABC</var> with <var>BC</var>
6
- <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
7
- style=\"vertical-align:middle;\"><var>AC</var> <img src=\"images/symbol_le.gif\"
8
- width=\"10\" height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\"><var>AB</var>.<br><var>k</var>
9
- is the angular bisector of angle <var>ACB</var>.<br><var>m</var> is the tangent
10
- at <var>C</var> to the circumscribed circle of <var>ABC</var>.<br><var>n</var> is
11
- a line parallel to <var>m</var> through <var>B</var>.<br>\r\nThe intersection of
12
- <var>n</var> and <var>k</var> is called <var>E</var>.\r\n</p>\r\n<div align=\"center\"><img
13
- src=\"project/images/p296_bisector.gif\"></div>\r\n<p>\r\nHow many triangles <var>ABC</var>
14
- with a perimeter not exceeding 100 000 exist such that <var>BE</var> has integral
15
- length?\r\n</p>\r\n\r\n\r\n"
5
+ :content: "Given is an integer sided triangle <var>ABC</var> with <var>BC</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
6
+ <var>AC</var> ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif)
7
+ <var>AB</var>. \n<var>k</var> is the angular bisector of angle <var>ACB</var>.
8
+ \ \n <var>m</var> is the tangent at <var>C</var> to the circumscribed circle of
9
+ <var>ABC</var>. \n <var>n</var> is a line parallel to <var>m</var> through <var>B</var>.
10
+ \ \n\rThe intersection of <var>n</var> and <var>k</var> is called <var>E</var>.\n\n
11
+ ![](/home/will/src/euler-manager/config/../data/images/p296_bisector.gif)\n\nHow
12
+ many triangles <var>ABC</var> with a perimeter not exceeding 100 000 exist such
13
+ that <var>BE</var> has integral length?\n\n"
@@ -2,18 +2,15 @@
2
2
  :id: 297
3
3
  :name: Zeckendorf Representation
4
4
  :url: http://projecteuler.net/problem=297
5
- :content: "\r\n<p>Each new term in the Fibonacci sequence is generated by adding the
6
- previous two terms.<br>\r\nStarting with 1 and 2, the first 10 terms will be: 1,
7
- 2, 3, 5, 8, 13, 21, 34, 55, 89.</p>\r\n\r\n<p>Every positive integer can be uniquely
8
- written as a sum of nonconsecutive terms of the Fibonacci sequence. For example,
9
- 100 = 3 + 8 + 89.<br>\r\nSuch a sum is called the <b>Zeckendorf representation</b>
10
- of the number.</p>\r\n\r\n<p>For any integer <var>n</var>&gt;0, let <var>z</var>(<var>n</var>)
11
- be the number of terms in the Zeckendorf representation of <var>n</var>.<br>\r\nThus,
12
- <var>z</var>(5) = 1, <var>z</var>(14) = 2, <var>z</var>(100) = 3 etc.<br>\r\nAlso,
13
- for 0<img src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\"
14
- style=\"vertical-align:middle;\"><var>n</var><img src=\"images/symbol_lt.gif\" width=\"10\"
15
- height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\">10<sup>6</sup>,
16
- ∑ <var>z</var>(<var>n</var>) = 7894453.</p>\r\n\r\n<p>Find ∑ <var>z</var>(<var>n</var>)
17
- for 0<img src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\"
18
- style=\"vertical-align:middle;\"><var>n</var><img src=\"images/symbol_lt.gif\" width=\"10\"
19
- height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\">10<sup>17</sup>.</p>\r\n"
5
+ :content: "Each new term in the Fibonacci sequence is generated by adding the previous
6
+ two terms. \n\rStarting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8,
7
+ 13, 21, 34, 55, 89.\n\nEvery positive integer can be uniquely written as a sum of
8
+ nonconsecutive terms of the Fibonacci sequence. For example, 100 = 3 + 8 + 89. \n\rSuch
9
+ a sum is called the **Zeckendorf representation** of the number.\n\nFor any integer
10
+ <var>n</var>>0, let <var>z</var>(<var>n</var>) be the number of terms in the Zeckendorf
11
+ representation of <var>n</var>. \n\rThus, <var>z</var>(5) = 1, <var>z</var>(14) = 2,
12
+ <var>z</var>(100) = 3 etc. \n\rAlso, for 0 ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)<var>n</var>
13
+ ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)10<sup>6</sup>,
14
+ ∑ <var>z</var>(<var>n</var>) = 7894453.\n\nFind ∑ <var>z</var>(<var>n</var>) for
15
+ 0 ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)<var>n</var>
16
+ ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif)10<sup>17</sup>.\n\n"
@@ -2,45 +2,45 @@
2
2
  :id: 298
3
3
  :name: Selective Amnesia
4
4
  :url: http://projecteuler.net/problem=298
5
- :content: "\r\n<style type=\"text/css\">\r\ntable.p298, table.p298 th, table.p298
5
+ :content: "<style type=\"text/css\"><![CDATA[\r\ntable.p298, table.p298 th, table.p298
6
6
  td {\r\n border-width: 1px 1px 1px 1px;\r\n border-style: solid solid solid solid;\r\n
7
7
  \ border-color: black black black black;\r\n text-align:center;\r\n -moz-border-radius:
8
8
  0px 0px 0px 0px;\r\n}\r\ntable.p298 {\r\n border-spacing: 1px;\r\n border-collapse:
9
9
  separate;\r\n background-color: rgb(255,255,255);\r\n}\r\ntable.p298 th, table.p298
10
10
  td {\r\n padding: 1px 6px 1px 6px;\r\n}\r\ntable.p298 th { background-color: rgb(200,220,250);
11
- }\r\ntable.p298 td { background-color: rgb(255,255,255); }\r\n</style>\n<p>Larry
11
+ }\r\ntable.p298 td { background-color: rgb(255,255,255); }\r\n]]></style>\n\nLarry
12
12
  and Robin play a memory game involving of a sequence of random numbers between 1
13
13
  and 10, inclusive, that are called out one at a time. Each player can remember up
14
14
  to 5 previous numbers. When the called number is in a player's memory, that player
15
15
  is awarded a point. If it's not, the player adds the called number to his memory,
16
- removing another number if his memory is full.</p>\r\n\r\n<p>Both players start
17
- with empty memories. Both players always add new missed numbers to their memory
18
- but use a different strategy in deciding which number to remove:<br>\r\nLarry's
19
- strategy is to remove the number that hasn't been called in the longest time.<br>\r\nRobin's
20
- strategy is to remove the number that's been in the memory the longest time.</p>\r\n\r\n<p>Example
21
- game:<br></p>\n<center><table class=\"p298\">\n<tr>\n<th>Turn</th>\r\n <th>Called<br>number</th>\r\n
22
- \ <th style=\"text-align:right\">Larry's<br>memory</th>\r\n <th>Larry's<br>score</th>\r\n
23
- \ <th style=\"text-align:right\">Robin's<br>memory</th>\r\n <th>Robin's<br>score</th>\r\n</tr>\n<tr>\n<td>1</td>\r\n
24
- \ <td>1</td>\r\n <td style=\"text-align:right\">1</td>\r\n <td>0</td>\r\n <td
25
- style=\"text-align:right\">1</td>\r\n <td>0</td>\r\n</tr>\n<tr>\n<td>2</td>\r\n
16
+ removing another number if his memory is full.\n\nBoth players start with empty
17
+ memories. Both players always add new missed numbers to their memory but use a different
18
+ strategy in deciding which number to remove: \n\rLarry's strategy is to remove
19
+ the number that hasn't been called in the longest time. \n\rRobin's strategy is
20
+ to remove the number that's been in the memory the longest time.\n\nExample game:\n\n<center><table
21
+ class=\"p298\">\r\n<tr>\r\n <th>Turn</th>\r\n <th>Called<br>number</th>\r\n <th
22
+ style=\"text-align:right\">Larry's<br>memory</th>\r\n <th>Larry's<br>score</th>\r\n
23
+ \ <th style=\"text-align:right\">Robin's<br>memory</th>\r\n <th>Robin's<br>score</th>\r\n</tr>\r\n<tr>\r\n
24
+ \ <td>1</td>\r\n <td>1</td>\r\n <td style=\"text-align:right\">1</td>\r\n <td>0</td>\r\n
25
+ \ <td style=\"text-align:right\">1</td>\r\n <td>0</td>\r\n</tr>\r\n<tr>\r\n <td>2</td>\r\n
26
26
  \ <td>2</td>\r\n <td style=\"text-align:right\">1,2</td>\r\n <td>0</td>\r\n <td
27
- style=\"text-align:right\">1,2</td>\r\n <td>0</td>\r\n</tr>\n<tr>\n<td>3</td>\r\n
27
+ style=\"text-align:right\">1,2</td>\r\n <td>0</td>\r\n</tr>\r\n<tr>\r\n <td>3</td>\r\n
28
28
  \ <td>4</td>\r\n <td style=\"text-align:right\">1,2,4</td>\r\n <td>0</td>\r\n
29
- \ <td style=\"text-align:right\">1,2,4</td>\r\n <td>0</td>\r\n</tr>\n<tr>\n<td>4</td>\r\n
30
- \ <td>6</td>\r\n <td style=\"text-align:right\">1,2,4,6</td>\r\n <td>0</td>\r\n
31
- \ <td style=\"text-align:right\">1,2,4,6</td>\r\n <td>0</td>\r\n</tr>\n<tr>\n<td>5</td>\r\n
32
- \ <td>1</td>\r\n <td style=\"text-align:right\">1,2,4,6</td>\r\n <td>1</td>\r\n
33
- \ <td style=\"text-align:right\">1,2,4,6</td>\r\n <td>1</td>\r\n</tr>\n<tr>\n<td>6</td>\r\n
34
- \ <td>8</td>\r\n <td style=\"text-align:right\">1,2,4,6,8</td>\r\n <td>1</td>\r\n
35
- \ <td style=\"text-align:right\">1,2,4,6,8</td>\r\n <td>1</td>\r\n</tr>\n<tr>\n<td>7</td>\r\n
36
- \ <td>10</td>\r\n <td style=\"text-align:right\">1,4,6,8,10</td>\r\n <td>1</td>\r\n
37
- \ <td style=\"text-align:right\">2,4,6,8,10</td>\r\n <td>1</td>\r\n</tr>\n<tr>\n<td>8</td>\r\n
38
- \ <td>2</td>\r\n <td style=\"text-align:right\">1,2,6,8,10</td>\r\n <td>1</td>\r\n
39
- \ <td style=\"text-align:right\">2,4,6,8,10</td>\r\n <td>2</td>\r\n</tr>\n<tr>\n<td>9</td>\r\n
40
- \ <td>4</td>\r\n <td style=\"text-align:right\">1,2,4,8,10</td>\r\n <td>1</td>\r\n
41
- \ <td style=\"text-align:right\">2,4,6,8,10</td>\r\n <td>3</td>\r\n</tr>\n<tr>\n<td>10</td>\r\n
42
- \ <td>1</td>\r\n <td style=\"text-align:right\">1,2,4,8,10</td>\r\n <td>2</td>\r\n
43
- \ <td style=\"text-align:right\">1,4,6,8,10</td>\r\n <td>3</td>\r\n</tr>\n</table></center>\r\n\r\n<p>Denoting
29
+ \ <td style=\"text-align:right\">1,2,4</td>\r\n <td>0</td>\r\n</tr>\r\n<tr>\r\n
30
+ \ <td>4</td>\r\n <td>6</td>\r\n <td style=\"text-align:right\">1,2,4,6</td>\r\n
31
+ \ <td>0</td>\r\n <td style=\"text-align:right\">1,2,4,6</td>\r\n <td>0</td>\r\n</tr>\r\n<tr>\r\n
32
+ \ <td>5</td>\r\n <td>1</td>\r\n <td style=\"text-align:right\">1,2,4,6</td>\r\n
33
+ \ <td>1</td>\r\n <td style=\"text-align:right\">1,2,4,6</td>\r\n <td>1</td>\r\n</tr>\r\n<tr>\r\n
34
+ \ <td>6</td>\r\n <td>8</td>\r\n <td style=\"text-align:right\">1,2,4,6,8</td>\r\n
35
+ \ <td>1</td>\r\n <td style=\"text-align:right\">1,2,4,6,8</td>\r\n <td>1</td>\r\n</tr>\r\n<tr>\r\n
36
+ \ <td>7</td>\r\n <td>10</td>\r\n <td style=\"text-align:right\">1,4,6,8,10</td>\r\n
37
+ \ <td>1</td>\r\n <td style=\"text-align:right\">2,4,6,8,10</td>\r\n <td>1</td>\r\n</tr>\r\n<tr>\r\n
38
+ \ <td>8</td>\r\n <td>2</td>\r\n <td style=\"text-align:right\">1,2,6,8,10</td>\r\n
39
+ \ <td>1</td>\r\n <td style=\"text-align:right\">2,4,6,8,10</td>\r\n <td>2</td>\r\n</tr>\r\n<tr>\r\n
40
+ \ <td>9</td>\r\n <td>4</td>\r\n <td style=\"text-align:right\">1,2,4,8,10</td>\r\n
41
+ \ <td>1</td>\r\n <td style=\"text-align:right\">2,4,6,8,10</td>\r\n <td>3</td>\r\n</tr>\r\n<tr>\r\n
42
+ \ <td>10</td>\r\n <td>1</td>\r\n <td style=\"text-align:right\">1,2,4,8,10</td>\r\n
43
+ \ <td>2</td>\r\n <td style=\"text-align:right\">1,4,6,8,10</td>\r\n <td>3</td>\r\n</tr>\n</table></center>\n\nDenoting
44
44
  Larry's score by <var>L</var> and Robin's score by <var>R</var>, what is the expected
45
45
  value of |<var>L</var>-<var>R</var>| after 50 turns? Give your answer rounded to
46
- eight decimal places using the format x.xxxxxxxx .</p>\r\n"
46
+ eight decimal places using the format x.xxxxxxxx .\n\n"
@@ -2,30 +2,24 @@
2
2
  :id: 299
3
3
  :name: Three similar triangles
4
4
  :url: http://projecteuler.net/problem=299
5
- :content: "\r\n<p>Four points with integer coordinates are selected:<br>A(<var>a</var>, 0),
6
- B(<var>b</var>, 0), C(0, <var>c</var>) and D(0, <var>d</var>), \r\nwith 0 <img src=\"images/symbol_lt.gif\"
7
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"> <var>a</var> <img
8
- src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\"
9
- style=\"vertical-align:middle;\"> <var>b</var> and 0 <img src=\"images/symbol_lt.gif\"
10
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"> <var>c</var> <img
11
- src=\"images/symbol_lt.gif\" width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\"
12
- style=\"vertical-align:middle;\"> <var>d</var>.<br>\r\nPoint P, also with integer
13
- coordinates, is chosen on the line AC so that the three triangles ABP, CDP and BDP
14
- are all <dfn title=\"Have equal angles\">similar</dfn>.</p>\r\n<div align=\"center\"><img
15
- src=\"project/images/p_299_ThreeSimTri.gif\"></div>\r\n<p>It is easy to prove that
16
- the three triangles can be similar, only if <var>a</var>=<var>c</var>.</p>\r\n\r\n<p>So,
5
+ :content: "Four points with integer coordinates are selected: \nA(<var>a</var>, 0),
6
+ B(<var>b</var>, 0), C(0, <var>c</var>) and D(0, <var>d</var>), \rwith 0  ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) <var>a</var> 
7
+ ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) <var>b</var>
8
+ and 0  ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) <var>c</var> 
9
+ ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) <var>d</var>.
10
+ \ \n\rPoint P, also with integer coordinates, is chosen on the line AC so that the
11
+ three triangles ABP, CDP and BDP are all <dfn title=\"Have equal angles\">similar</dfn>.\n\n
12
+ ![](/home/will/src/euler-manager/config/../data/images/p_299_ThreeSimTri.gif)\n\nIt
13
+ is easy to prove that the three triangles can be similar, only if <var>a</var>=<var>c</var>.\n\nSo,
17
14
  given that <var>a</var>=<var>c</var>, we are looking for triplets (<var>a</var>,<var>b</var>,<var>d</var>)
18
15
  such that at least one point P (with integer coordinates) exists on AC, making the
19
- three triangles ABP, CDP and BDP all similar.</p>\r\n\r\n<p>For example, if (<var>a</var>,<var>b</var>,<var>d</var>)=(2,3,4),
20
- it can be easily verified that point P(1,1) satisfies the above condition. \r\nNote
16
+ three triangles ABP, CDP and BDP all similar.\n\nFor example, if (<var>a</var>,<var>b</var>,<var>d</var>)=(2,3,4),
17
+ it can be easily verified that point P(1,1) satisfies the above condition. \rNote
21
18
  that the triplets (2,3,4) and (2,4,3) are considered as distinct, although point
22
- P(1,1) is common for both.</p>\r\n\r\n<p>If <var>b</var>+<var>d</var> <img src=\"images/symbol_lt.gif\"
23
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"> 100,
19
+ P(1,1) is common for both.\n\nIf <var>b</var>+<var>d</var>  ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) 100,
24
20
  there are 92 distinct triplets (<var>a</var>,<var>b</var>,<var>d</var>) such that
25
- point P exists.<br>\r\nIf <var>b</var>+<var>d</var> <img src=\"images/symbol_lt.gif\"
26
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"> 100
21
+ point P exists. \n\rIf <var>b</var>+<var>d</var>  ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) 100
27
22
  000, there are 320471 distinct triplets (<var>a</var>,<var>b</var>,<var>d</var>)
28
- such that point P exists.</p>\r\n<p>If <var>b</var>+<var>d</var> <img src=\"images/symbol_lt.gif\"
29
- width=\"10\" height=\"10\" alt=\"&lt;\" border=\"0\" style=\"vertical-align:middle;\"> 100
23
+ such that point P exists.\n\nIf <var>b</var>+<var>d</var>  ![<](/home/will/src/euler-manager/config/../data/images/symbol_lt.gif) 100
30
24
  000 000, how many distinct triplets (<var>a</var>,<var>b</var>,<var>d</var>) are
31
- there such that point P exists?</p>\r\n"
25
+ there such that point P exists?\n\n"
data/data/problems/3.yml CHANGED
@@ -2,6 +2,6 @@
2
2
  :id: 3
3
3
  :name: Largest prime factor
4
4
  :url: http://projecteuler.net/problem=3
5
- :content: "\r\n<p>The prime factors of 13195 are 5, 7, 13 and 29.</p>\r\n<p>What is
6
- the largest prime factor of the number 600851475143 ?</p>\r\n<!--\r\nNote: This
7
- problem has been changed recently, please check that you are using the right number.\r\n-->\r\n\r\n"
5
+ :content: "The prime factors of 13195 are 5, 7, 13 and 29.\n\nWhat is the largest
6
+ prime factor of the number 600851475143 ?\n\n<!--\r\nNote: This problem has been
7
+ changed recently, please check that you are using the right number.\r\n-->\n"
data/data/problems/30.yml CHANGED
@@ -2,11 +2,10 @@
2
2
  :id: 30
3
3
  :name: Digit fifth powers
4
4
  :url: http://projecteuler.net/problem=30
5
- :content: "\r\n\n<p>Surprisingly there are only three numbers that can be written
6
- as the sum of fourth powers of their digits:</p>\n<blockquote>1634 = 1<sup>4</sup>
7
- + 6<sup>4</sup> + 3<sup>4</sup> + 4<sup>4</sup><br>\n8208 = 8<sup>4</sup> + 2<sup>4</sup>
8
- + 0<sup>4</sup> + 8<sup>4</sup><br>\n9474 = 9<sup>4</sup> + 4<sup>4</sup> + 7<sup>4</sup>
9
- + 4<sup>4</sup>\n</blockquote>\n<p class=\"info\">As 1 = 1<sup>4</sup> is not a
10
- sum it is not included.</p>\n<p>The sum of these numbers is 1634 + 8208 + 9474 =
11
- 19316.</p>\n<p>Find the sum of all the numbers that can be written as the sum of
12
- fifth powers of their digits.</p>\n\r\n"
5
+ :content: "Surprisingly there are only three numbers that can be written as the sum
6
+ of fourth powers of their digits:\n\n> 1634 = 1<sup>4</sup> + 6<sup>4</sup> + 3<sup>4</sup>
7
+ + 4<sup>4</sup> \n> 8208 = 8<sup>4</sup> + 2<sup>4</sup> + 0<sup>4</sup> + 8<sup>4</sup>
8
+ \ \n> 9474 = 9<sup>4</sup> + 4<sup>4</sup> + 7<sup>4</sup> + 4<sup>4</sup>\n\nAs
9
+ 1 = 1<sup>4</sup> is not a sum it is not included.\n\nThe sum of these numbers is
10
+ 1634 + 8208 + 9474 = 19316.\n\nFind the sum of all the numbers that can be written
11
+ as the sum of fifth powers of their digits.\n\n"
@@ -2,23 +2,22 @@
2
2
  :id: 300
3
3
  :name: Protein folding
4
4
  :url: http://projecteuler.net/problem=300
5
- :content: "\r\n<p>In a very simplified form, we can consider proteins as strings consisting
6
- of hydrophobic (H) and polar (P) elements, e.g. HHPPHHHPHHPH. <br>\r\nFor this problem,
5
+ :content: "In a very simplified form, we can consider proteins as strings consisting
6
+ of hydrophobic (H) and polar (P) elements, e.g. HHPPHHHPHHPH. \n\rFor this problem,
7
7
  the orientation of a protein is important; e.g. HPP is considered distinct from
8
8
  PPH. Thus, there are 2<sup><var>n</var></sup> distinct proteins consisting of <var>n</var>
9
- elements.</p>\r\n\r\n<p>When one encounters these strings in nature, they are always
10
- folded in such a way that the number of H-H contact points is as large as possible,
11
- since this is energetically advantageous.<br>\r\nAs a result, the H-elements tend
12
- to accumulate in the inner part, with the P-elements on the outside.<br>\r\nNatural
13
- proteins are folded in three dimensions of course, but we will only consider protein
14
- folding in <u>two dimensions</u>.</p>\r\n\r\n<p>The figure below shows two possible
15
- ways that our example protein could be folded (H-H contact points are shown with
16
- red dots).</p>\r\n\r\n<div align=\"center\"><img src=\"project/images/p_300_protein.gif\"></div>\r\n\r\n<p>The
17
- folding on the left has only six H-H contact points, thus it would never occur naturally.<br>\r\nOn
18
- the other hand, the folding on the right has nine H-H contact points, which is optimal
19
- for this string.</p>\r\n\r\n<p>Assuming that H and P elements are equally likely
9
+ elements.\n\nWhen one encounters these strings in nature, they are always folded
10
+ in such a way that the number of H-H contact points is as large as possible, since
11
+ this is energetically advantageous. \n\rAs a result, the H-elements tend to accumulate
12
+ in the inner part, with the P-elements on the outside. \n\rNatural proteins are
13
+ folded in three dimensions of course, but we will only consider protein folding
14
+ in <u>two dimensions</u>.\n\nThe figure below shows two possible ways that our example
15
+ protein could be folded (H-H contact points are shown with red dots).\n\n ![](/home/will/src/euler-manager/config/../data/images/p_300_protein.gif)\n\nThe
16
+ folding on the left has only six H-H contact points, thus it would never occur naturally.
17
+ \ \n\rOn the other hand, the folding on the right has nine H-H contact points, which
18
+ is optimal for this string.\n\nAssuming that H and P elements are equally likely
20
19
  to occur in any position along the string, the average number of H-H contact points
21
- in an optimal folding of a random protein string of length 8 turns out to be 850 / 2<sup>8</sup>=3.3203125.</p>\r\n\r\n<p>What
20
+ in an optimal folding of a random protein string of length 8 turns out to be 850 / 2<sup>8</sup>=3.3203125.\n\nWhat
22
21
  is the average number of H-H contact points in an optimal folding of a random protein
23
- string of length 15?<br>\r\nGive your answer using as many decimal places as necessary
24
- for an exact result.</p>\r\n"
22
+ string of length 15? \n\rGive your answer using as many decimal places as necessary
23
+ for an exact result.\n\n"
@@ -2,24 +2,22 @@
2
2
  :id: 301
3
3
  :name: Nim
4
4
  :url: http://projecteuler.net/problem=301
5
- :content: "\r\n<p><i>Nim</i> is a game played with heaps of stones, where two players
6
- take it in turn to remove any number of stones from any heap until no stones remain.</p>\r\n\r\n<p>We'll
7
- consider the three-heap normal-play version of Nim, which works as follows:<br>\r\n-
8
- At the start of the game there are three heaps of stones.<br>\r\n- On his turn the
9
- player removes any positive number of stones from any single heap.<br>\r\n- The
10
- first player unable to move (because no stones remain) loses.</p>\r\n\r\n<p> If
11
- (<var>n</var><sub>1</sub>,<var>n</var><sub>2</sub>,<var>n</var><sub>3</sub>) indicates
12
- a Nim position consisting of heaps of size <var>n</var><sub>1</sub>, <var>n</var><sub>2</sub>
5
+ :content: "_Nim_ is a game played with heaps of stones, where two players take it
6
+ in turn to remove any number of stones from any heap until no stones remain.\n\nWe'll
7
+ consider the three-heap normal-play version of Nim, which works as follows: \n\r-
8
+ At the start of the game there are three heaps of stones. \n\r- On his turn the
9
+ player removes any positive number of stones from any single heap. \n\r- The first
10
+ player unable to move (because no stones remain) loses.\n\nIf (<var>n</var><sub>1</sub>,<var>n</var><sub>2</sub>,<var>n</var><sub>3</sub>)
11
+ indicates a Nim position consisting of heaps of size <var>n</var><sub>1</sub>, <var>n</var><sub>2</sub>
13
12
  and <var>n</var><sub>3</sub> then there is a simple function <var>X</var>(<var>n</var><sub>1</sub>,<var>n</var><sub>2</sub>,<var>n</var><sub>3</sub>)
14
- — that you may look up or attempt to deduce for yourself — that returns:\r\n</p>\n<ul>\n<li>zero
15
- if, with perfect strategy, the player about to move will eventually lose; or</li>\r\n<li>non-zero
16
- if, with perfect strategy, the player about to move will eventually win.</li>\n</ul>\n<p>For
13
+ — that you may look up or attempt to deduce for yourself — that returns:\n\n- zero
14
+ if, with perfect strategy, the player about to move will eventually lose; or\n-
15
+ non-zero if, with perfect strategy, the player about to move will eventually win.\n\nFor
17
16
  example <var>X</var>(1,2,3) = 0 because, no matter what the current player does,
18
17
  his opponent can respond with a move that leaves two heaps of equal size, at which
19
18
  point every move by the current player can be mirrored by his opponent until no
20
- stones remain; so the current player loses. To illustrate:<br>\r\n- current player
21
- moves to (1,2,1)<br>\r\n- opponent moves to (1,0,1)<br>\r\n- current player moves
22
- to (0,0,1)<br>\r\n- opponent moves to (0,0,0), and so wins.</p>\r\n\r\n<p>For how
23
- many positive integers <var>n</var> <img src=\"images/symbol_le.gif\" width=\"10\"
24
- height=\"12\" alt=\"≤\" border=\"0\" style=\"vertical-align:middle;\">2<sup>30</sup>
25
- does <var>X</var>(<var>n</var>,2<var>n</var>,3<var>n</var>) = 0 ?\r\n</p>\r\n\r\n"
19
+ stones remain; so the current player loses. To illustrate: \n\r- current player
20
+ moves to (1,2,1) \n\r- opponent moves to (1,0,1) \n\r- current player moves to
21
+ (0,0,1) \n\r- opponent moves to (0,0,0), and so wins.\n\nFor how many positive
22
+ integers <var>n</var>  ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) 2<sup>30</sup>
23
+ does <var>X</var>(<var>n</var>,2<var>n</var>,3<var>n</var>) = 0 ?\n\n"
@@ -2,17 +2,16 @@
2
2
  :id: 302
3
3
  :name: Strong Achilles Numbers
4
4
  :url: http://projecteuler.net/problem=302
5
- :content: "\r\n<p>\r\nA positive integer <var>n</var> is <b>powerful</b> if p<sup>2</sup>
6
- is a divisor of <var>n</var> for every prime factor p in <var>n</var>.\r\n</p>\r\n<p>\r\nA
7
- positive integer <var>n</var> is a <b>perfect power</b> if <var>n</var> can be expressed
8
- as a power of another positive integer.\r\n</p>\r\n<p>\r\nA positive integer <var>n</var>
9
- is an <b>Achilles number</b> if <var>n</var> is powerful but not a perfect power.
10
- For example, 864 and 1800 are Achilles numbers: 864 = 2<sup>5</sup>·3<sup>3</sup>
11
- and 1800 = 2<sup>3</sup>·3<sup>2</sup>·5<sup>2</sup>.\r\n</p>\r\n<p>\r\nWe shall
12
- call a positive integer <var>S</var> a <i>Strong Achilles number</i> if both <var>S</var>
13
- and φ(<var>S</var>) are Achilles numbers.<sup>1</sup><br>\r\nFor example, 864 is
14
- a Strong Achilles number: φ(864) = 288 = 2<sup>5</sup>·3<sup>2</sup>. However, 1800
15
- isn't a Strong Achilles number because: φ(1800) = 480 = 2<sup>5</sup>·3<sup>1</sup>·5<sup>1</sup>.\r\n</p>\r\n<p>There
16
- are 7 Strong Achilles numbers below 10<sup>4</sup> and 656 below 10<sup>8</sup>.\r\n</p>\r\n<p>\r\nHow
17
- many Strong Achilles numbers are there below 10<sup>18</sup>?\r\n</p>\r\n<p>\r\n<sup>1</sup>
18
- φ denotes <b>Euler's totient function</b>.\r\n</p>\r\n\r\n\r\n\r\n\r\n\r\n"
5
+ :content: "A positive integer <var>n</var> is **powerful** if p<sup>2</sup> is a divisor
6
+ of <var>n</var> for every prime factor p in <var>n</var>.\n\nA positive integer
7
+ <var>n</var> is a **perfect power** if <var>n</var> can be expressed as a power
8
+ of another positive integer.\n\nA positive integer <var>n</var> is an **Achilles
9
+ number** if <var>n</var> is powerful but not a perfect power. For example, 864 and
10
+ 1800 are Achilles numbers: 864 = 2<sup>5</sup>·3<sup>3</sup> and 1800 = 2<sup>3</sup>·3<sup>2</sup>·5<sup>2</sup>.\n\nWe
11
+ shall call a positive integer <var>S</var> a _Strong Achilles number_ if both <var>S</var>
12
+ and φ(<var>S</var>) are Achilles numbers.<sup>1</sup> \n\rFor example, 864 is a
13
+ Strong Achilles number: φ(864) = 288 = 2<sup>5</sup>·3<sup>2</sup>. However, 1800
14
+ isn't a Strong Achilles number because: φ(1800) = 480 = 2<sup>5</sup>·3<sup>1</sup>·5<sup>1</sup>.\n\nThere
15
+ are 7 Strong Achilles numbers below 10<sup>4</sup> and 656 below 10<sup>8</sup>.\n\nHow
16
+ many Strong Achilles numbers are there below 10<sup>18</sup>?\n\n<sup>1</sup> φ
17
+ denotes **Euler's totient function** .\n\n"
@@ -2,10 +2,12 @@
2
2
  :id: 303
3
3
  :name: Multiples with small digits
4
4
  :url: http://projecteuler.net/problem=303
5
- :content: "\r\n<p>\r\nFor a positive integer <var>n</var>, define <var>f</var>(<var>n</var>)
6
- as the least positive multiple of <var>n</var> that, written in base 10, uses only
7
- digits <img src=\"images/symbol_le.gif\" width=\"10\" height=\"12\" alt=\"≤\" border=\"0\"
8
- style=\"vertical-align:middle;\"> 2.</p>\r\n<p>Thus <var>f</var>(2)=2, <var>f</var>(3)=12,
9
- <var>f</var>(7)=21, <var>f</var>(42)=210, <var>f</var>(89)=1121222.</p>\r\n<p>Also,
10
- <img src=\"project/images/p303_formula100.gif\" style=\"vertical-align:middle\">.</p>\r\n<p>\r\nFind
11
- <img src=\"project/images/p303_formula10000.gif\" style=\"vertical-align:middle\">.\r\n</p>\r\n\r\n"
5
+ :content: |+
6
+ For a positive integer <var>n</var>, define <var>f</var>(<var>n</var>) as the least positive multiple of <var>n</var> that, written in base 10, uses only digits ![≤](/home/will/src/euler-manager/config/../data/images/symbol_le.gif) 2.
7
+
8
+ Thus <var>f</var>(2)=2, <var>f</var>(3)=12, <var>f</var>(7)=21, <var>f</var>(42)=210, <var>f</var>(89)=1121222.
9
+
10
+ Also, ![](/home/will/src/euler-manager/config/../data/images/p303_formula100.gif).
11
+
12
+ Find ![](/home/will/src/euler-manager/config/../data/images/p303_formula10000.gif).
13
+