Archive for 2015年12月|Monthly archive page
projecteuler28
projecteuler の 問題28は、自然数をらせん状に並べ、角の数値のみを足した和を求めるもの。といっても、一辺が 1001 になるまでですが(笑)
スクリプトは単純、
(let (i 1 j 2 lst '(1))
(while (< j 1001)
(dotimes (k 4) (++ i j) (push i lst -1))
(++ j 2))
(println lst)
(apply + lst)
)
こんな感じ。一週ごとに求める自然数の間隔が2つずつ増えていくのがミソ。
これを実行すると
(1 3 5 7 9 13 17 21 25 31 37 43 49 57 65 73 81 91 101 111 121 133 145 157 169 183 : 986049 987043 988037 989031 990025 991021 992017 993013 994009 995007 996005 997003 998001 999001 1000001 1001001 1002001) 669171001 >
答え 669171001 が求まります。
以上、如何でしょうか?