exp(pi * sqrt(n))が整数に近くなるnを探す – どう書く?

DouKaku?より

1以上200未満の整数nのうち、 exp(pi * sqrt(n))がほとんど整数であるようなnを求めるコードを書いてください。

大きな数を標準では扱えない処理系だと大変でしょうが、Mathematicaなら

Select[Range@199,
 With[{f = Exp[Pi Sqrt@#]},
  Abs[f - Round@f] <= 10^-4 &]]

{37, 58, 67, 163}

以上。10^-4を0.0001と書かないように。

関数値を出力したければ、(桁数+6)ぐらいの近似値にして、指数形式にならないように

{#, NumberForm[N[f@#, Log[10, f@#] + 6], ExponentFunction -> (Null &)]} & /@ %

{{37, 199148647.99998}, {58, 24591257752.00000}, {67, 147197952744.00000}, \
{163, 262537412640768744.00000}}