Menu
CoddyTech

Square Root (Integer)

La tua funzione riceve un intero non negativo x e restituisce la sua radice quadrata intera: il più grande intero r tale che r × r ≤ x. In altre parole, la radice quadrata arrotondata per difetto: se un numero non è un quadrato perfetto, si ottiene la radice del quadrato perfetto immediatamente inferiore. Calcolala tu, senza usare una funzione integrata per la radice quadrata o una funzione di potenza.

Funzione

mySqrt(x: integer) → integer
xinteger
l'intero non negativo di cui calcolare la radice quadrata
Restituisceinteger
la radice quadrata di x arrotondata per difetto a un numero intero

Vincoli

  • 0 ≤ x ≤ 231 - 1
  • Non chiamare una funzione integrata per la radice quadrata, la potenza o l’esponenziale.

Esempi

Input
x = 17
Output
4
Spiegazione
4 × 4 = 16 è al massimo 17, ma 5 × 5 = 25 è maggiore, quindi la radice di 17 si arrotonda per difetto a 4.

lock icon+17 test nascosti all’invio

challenge icon

Per approfondire

Come troveresti invece la radice cubica intera, il più grande r tale che r × r × r ≤ x, se x potesse anche essere negativo?

Ripristina il codice
def mySqrt(x):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Input

x = 17

Atteso

4