OMC186(B) Pythonによる実装
皆さん、こんにちは!本日はOMC186(B) をPythonで実装してCAを狙っていきましょう。
注意点
OMCでは「コンテスト中の高度なツールの使用」が禁止されています。コンテストに参加する際には規約を遵守し、各種ツールの使用はしないようにしましょう。
解説
問題文に書いてある通りに忠実に実装を行うと、解を求めることが可能です。
初期値 Num を設定し、それに加算していって、Numが10^5を超えるまで操作を繰り返せばよいです。
解答コード
上記のような操作を実装したのが下記コードです。下記コードを実行すれば答えが求まります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# import import math def f(N): return (math.ceil(math.sqrt(N)))**2 - ( math.floor(math.sqrt(N)))**2 # Answer ans = 1 # calcurate result num = 0 # Limit N = 10**5 # calcuration while True: num += f(ans) if num >= N: break ans += 1 # output print("ans is:",ans) |