# [Haskell], 103 bytes <!-- language-all: lang-hs --> head.([1..]>>=).g 1 0 g b i a d=[[]|a<1]++[j:o|j<-[max(div(b-1)a)i+1..div(b*d)a],o<-g(b*j)j(a*j-b)$d-1] [Try it online!][TIO-kynim8c2] [Haskell]: https://www.haskell.org/ [TIO-kynim8c2]: https://tio.run/##HYuxDoIwFEV3vuINDi3QxhonAyzORkaT0piHhdIKhYgxDny7Fd3uOTm3w/ne9H0Y0HrIYcDpdAVSeWAFTA/rn0B8Ci14SkEKzvcqateuCl2DmpOfUkWRU25AwDYyUIMFBJ1LqRbMhEoS6Q7j4jImB3wTbV@kZoIitcn6/WOsKap0zJhZt6OOYOxYTTeaCRXC59b2aObALseyDOy8@wI "Haskell – Try It Online" This uses iterative deepening depth-first search, using the bound \$\frac a{bd} ≤ \frac 1j ≤ \frac ab\$ on the first term \$\frac1j\$ of a size-\$d\$ Egyptian fraction for \$\frac ab\$. Unclear if this qualifies as “fast”, but it does solve \$n = 4\$ in a few seconds: \$4 = \frac11 + \frac12 + \frac13 + \frac14 + \frac15 + \frac16 + \frac17 + \frac18 + \frac19 + \frac1{10} + \frac1{11} + \frac1{12} + \frac1{13} + \frac1{14} + \frac1{15} + \frac1{16} + \frac1{17} + \frac1{18} + \frac1{19} + \frac1{20} + \frac1{21} + \frac1{22} + \frac1{23} + \frac1{24} + \frac1{25} + \frac1{26} + \frac1{27} + \frac1{28} + \frac1{30} + \frac1{34} + \frac1{100} + \frac1{11934} + \frac1{14536368}.\$