Menu
CoddyTech

Square Root (Integer)

Twoja funkcja otrzymuje nieujemną liczbę całkowitą x i zwraca jej całkowity pierwiastek kwadratowy: największą liczbę całkowitą r, dla której r × r ≤ x. Innymi słowy, pierwiastek jest zaokrąglany w dół, więc dla liczby, która nie jest kwadratem liczby całkowitej, zwracany jest pierwiastek z najbliższego mniejszego kwadratu liczby całkowitej. Oblicz go samodzielnie, bez używania wbudowanej funkcji pierwiastka kwadratowego ani potęgowania.

Funkcja

mySqrt(x: integer) → integer
xinteger
nieujemna liczba całkowita, z której należy wyciągnąć pierwiastek kwadratowy
Zwracainteger
pierwiastek kwadratowy z x zaokrąglony w dół do liczby całkowitej

Ograniczenia

  • 0 ≤ x ≤ 231 - 1
  • Nie wywołuj wbudowanej funkcji pierwiastka kwadratowego, potęgowania ani funkcji wykładniczej.

Przykłady

Wejście
x = 17
Wyjście
4
Wyjaśnienie
4 × 4 = 16 to maksymalnie 17, ale 5 × 5 = 25 to więcej, więc pierwiastek z 17 zaokrągla się w dół do 4.

lock icon+17 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Jak zamiast tego znaleźć całkowity pierwiastek sześcienny, czyli największą wartość r, dla której r × r × r ≤ x, jeśli x może być również ujemne?

Zresetuj kod
def mySqrt(x):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Wejście

x = 17

Oczekiwane

4