80は、数の開平の問題です。
初めは、数値解析のやりかたでやろうと思って、やってはみたものの、時間が掛りすぎてだめ。
で、結局、一番最初に思った、筆算の開平の方法を実装して解決。
方法は、ウィキの開平法あたりを見てください。このとおりです。
・square-num?
平方数かどうか。
・num-cat
数字の連結。右側1桁前提。
12,3 -> 123
・biggest-x
開平で使う、yyyとXがあるとき、yyy? × ? が X を超えない最大の?を求める。
・extract-sqrt
numをp桁まで開平する。
・pe80
2からlimitまでの数の内、平方数以外のものを開平して、各桁の数を全部足す。
初めは、数値解析のやりかたでやろうと思って、やってはみたものの、時間が掛りすぎてだめ。
で、結局、一番最初に思った、筆算の開平の方法を実装して解決。
方法は、ウィキの開平法あたりを見てください。このとおりです。
・square-num?
平方数かどうか。
・num-cat
数字の連結。右側1桁前提。
12,3 -> 123
・biggest-x
開平で使う、yyyとXがあるとき、yyy? × ? が X を超えない最大の?を求める。
・extract-sqrt
numをp桁まで開平する。
・pe80
2からlimitまでの数の内、平方数以外のものを開平して、各桁の数を全部足す。
0 コメント:
コメントを投稿