Menu
CoddyTech

Square Root (Integer)

Sua função recebe um número inteiro não negativo x e retorna sua raiz quadrada inteira: o maior número inteiro r tal que r × r ≤ x. Ou seja, a raiz quadrada arredondada para baixo; assim, um número que não é um quadrado perfeito recebe a raiz do quadrado perfeito imediatamente inferior. Calcule-a você mesmo, sem usar uma função integrada de raiz quadrada ou potência.

Função

mySqrt(x: integer) → integer
xinteger
o inteiro não negativo do qual calcular a raiz quadrada
Retornainteger
a raiz quadrada de x arredondada para baixo até um número inteiro

Restrições

  • 0 ≤ x ≤ 231 - 1
  • Não chame uma função integrada de raiz quadrada, potência ou exponenciação.

Exemplos

Entrada
x = 17
Saída
4
Explicação
4 × 4 = 16 é no máximo 17, mas 5 × 5 = 25 é maior, então a raiz de 17 é arredondada para baixo, para 4.

lock icon+17 testes ocultos ao enviar

challenge icon

Para ir além

Como você encontraria, em vez disso, a raiz cúbica inteira, o maior r tal que r × r × r ≤ x, se x também pudesse ser negativo?

Redefinir código
def mySqrt(x):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Entrada

x = 17

Esperado

4