GAIさんへのお返事です。
!グッドスタインの定理(R.L.Goodstein)
!ウィキペディアより
!http://www.cwi.nl/~tromp/pearls.html#goodstein のRuby版を移植
FUNCTION s(b,e,n)
IF n=0 THEN LET s=0 ELSE LET s=MOD(n,b)*(b+1)^s(b,0,e)+s(b,e+1,INT(n/b))
END FUNCTION
FUNCTION g(b,n)
IF n=0 THEN LET g=b ELSE LET g=g(b+1,s(b,0,n)-1)
END FUNCTION
DEF f(n)=g(2,n) !自然数nに対する0になるときの底を返す
PRINT f(0) !f(0)=2,f(1)=3,f(2)=5,f(3)=7
PRINT f(1)
PRINT f(2)
PRINT f(3)
PRINT f(4) !f(4)=3*2^402653211-1 ※スタック・オーバーフロー
END
スタック・オーバーフローが回避できればいいのですが、、、(再帰処理を繰り返し処理に置き換える)
また、数値計算だと巨大な数を扱うことになるので、数式計算(代数計算)を行えば可能かと思います。