Menu
CoddyTech

Square Root (Integer)

関数は非負整数 x を受け取り、その整数平方根を返します。つまり、r × r ≤ x を満たす最大の整数 r です。これは平方根を切り捨てた値なので、完全平方数ではない数の場合、その数より小さい最大の完全平方数の平方根を返します。組み込みの平方根関数や累乗関数を使わずに、自分で計算してください。

関数

mySqrt(x: integer) → integer
xinteger
平方根を求める非負の整数
戻り値integer
x の平方根を整数に切り捨てた値

制約

  • 0 ≤ x ≤ 231 - 1
  • 組み込みの平方根関数、べき乗関数、または指数関数を呼び出さないでください。

例

入力
x = 17
出力
4
説明
4 × 4 = 16 は 17 以下ですが、5 × 5 = 25 は 17 を超えるため、17 の平方根は切り捨てて 4 になります。

lock icon提出時に隠しテスト+17件

challenge icon

発展問題

代わりに整数の立方根、つまり x が負の場合もあるとして、r × r × r ≤ x を満たす最大の r をどのように求めますか?

コードをリセット
def mySqrt(x):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

入力

x = 17

期待値

4