完全平方数のチェック
どんな順序付きリストでもバイナリサーチ(2分探索)を行うことができます。たとえば、昇順に並べられた身長のリスト、整数のリスト、浮動小数点数のリストなどに適用できますし、整数の集合 や自然数の集合 、有理数の集合 に対しても同じです。いずれにしても、解になり得る範囲を設定し、各反復で必要のない部分を除外していく手順は変わりません。
チャレンジ
与えられた正の整数 n について、sqrt 関数を使わずに n が完全平方数(“full square”)かどうかを判定してください。
入力
入力は単一の整数 n (2 ≤ n ≤ ) です。
出力
n が完全平方数であれば Yes、そうでなければ No を出力してください。
例
入力 | 出力 |
|---|---|
9 | Yes |
8 | No |
16 | Yes |
26 | No |
ヒント
もし n が完全平方数であるならば、ある整数 x が存在して となります。したがって [1, 2, …, n] の範囲から x を探す方法を考えてみてください。
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB