challenge exp(pi * sqrt(n))が整数に近くなるnを探す

1以上200未満の整数nのうち、 exp(pi * sqrt(n))がほとんど整数であるようなnを求めるコードを書いてください。 なお、expは底がeである指数関数 - Wikipedia、 piは円周率、sqrtは平方根です。また「ほとんど整数である」とは 整数からプラスマイナス0.0001の範囲にあることとします。

Pythonで34行のスクリプトを書いて得られた出力の例が下のようになります。

37 199148647.999978
58 24591257752.000000
67 147197952743.999999
163 262537412640768744.000000 
この問題は光成さんに教えて頂いた e^{π*sqrt{163}}≒26253741640768744 が元になっています。ご協力ありがとうございました。

Posted feedbacks - awk

やはり,awk も倍精度実数までしか使えないから
37 と 58 しか捕まえられないなあ

awk -f p3416.awk
37 : 199148647.99997794628
58 : 24591257751.999965668
1
2
3
4
5
6
7
8
9
BEGIN {
    PI = atan2(1,1)*4
    for (n = 1; n < 100; n++) {
        x = exp(PI*sqrt(n))
        if (abs(x-int(x+0.5)) < 0.0001) printf "%i : %.20g\n", n, x
    }
}

function abs(x) { return x < 0 ? -x : x }

Index

Feed

Other

Link

Pathtraq

loading...