丁度良さそうな難易度だったので挑戦してみたぜ。
関数型やった事ないんで、激しく勘違いしているかも
しれないが、一応雰囲気はそれらしくしてみたつもり。

算術演算子3つ(加減算、大なり)と即値2つ(1,4243)
だけで解いてみた。
ループのやり方さえ分からないところから始めたので、
自分にとってはかなりの力作。

greater = lambda { |a,b| a > b }
add = lambda { |a,b| a + b }
sub = lambda { |a,b| a - b }

ONE = 1
ZERO = sub[ONE,ONE]
N  = 4243

shift_l = lambda { |n| add[n,n] }
shift_r = lambda { |n|
 ret = lambda { |m,i|
  k = add[m,i]
  greater[shift_l[k], n] \
   ? m \
   : k
 }

 (rec = lambda { |i|
  greater[n, i] \
   ? ret[ rec[ shift_l[i] ], i] \
   : ZERO
 })[ONE]
}