回答の追記にある

> i ≦ √(2ele + 0.25) - 0.5
> が得られました。これを満たす最大の非負整数が求めたいiになります。

までは数学としては正しいが、それをプログラムで

> i = int(math.sqrt(2*ele+0.25) - 0.5)

と書くことで、数学として得られた結論

> これを満たす最大の非負整数

が常に正しく得られるかどうかというと、これはまた別の問題。

プログラムで小数の発生する算術計算をすると常に誤差がつきまとう。
数学だったりの理論上の値からのズレが生じる可能性がある。
junの回答にはその考察が欠けていて、
それが欠けていることを質問者もたぶん気がついてない、とは言えるかもしれない。