355です
ちょっとスレの雰囲気よろしくなかったので355は無かった事にしようかとも思ったんですけど一応想定してた解書いてみます
数学板で最初この話題が出たときHaskellにはBigintのsqrtがない事に気づいてめんどくせえと思ったもんですから他の言語ではどうなんだろうなぁと
調べたらperlにはあるけどrubyやputhonにはないみたいですね
bigint sqrt ruby とかで検索するとノウハウがヒットします
想定してた解はその手の解答でまず最初に出てくる
a(1)=1,
a(k) = [ ( a(k) + [ n/a(k) ] ) / 2 ] ( [x] は floor(x) )
で定義される数列a(k)を
a(k)^2≦n<(a(k)+1)^2
が成立するまで計算していくという方法です
Haskellでの実装はこんな感じ

https://ideone.com/gLt8mp

後面白いのには連分数を利用する解答などもあります
数列pn, qnを
p(0)=1, p(1)=100, p(n+2)=100p(n+1)+p(n)
q(0)=0, q(1)=1, q(n+2)=100q(n+1)+q(n)
とすると
p(2n-1)/q(2n-1) < 50+√2501 < p(2n)/q(2n)
を満たしながらlim p(n)/q(n) = 50+√2501になります(連分数の打ち切り近似)
コレを利用するとこんな感じです

https://ideone.com/X0UgJb