Faça uma função para verificar se um número é um quadrado perfeito. Um quadrado perfeito é um número inteiro não negativo que pode ser expresso como o quadrado de outro número inteiro. Ex: 1, 4, 9…
Passo 1
O problema pede para criar uma função que receba um número inteiro e diga se ele é um quadrado perfeito, ou seja, se existe outro inteiro cujo quadrado seja exatamente esse número.
Passo 2
Primeiro, a gente verifica se o número é negativo. Todo quadrado perfeito é não-negativo, então se for menor que zero, já retornamos False.
Depois, calculamos a raiz quadrada do número. Em Python, por exemplo, podemos usar a função math.isqrt(n), que retorna a parte inteira da raiz quadrada de n sem erros de aproximação.
Em seguida, é só conferir se esse inteiro ao quadrado volta ao número original. Se math.isqrt(n)**2 == n, então n é quadrado perfeito; caso contrário, não é.
Depois, calculamos a raiz quadrada do número. Em Python, por exemplo, podemos usar a função math.isqrt(n), que retorna a parte inteira da raiz quadrada de n sem erros de aproximação.
Em seguida, é só conferir se esse inteiro ao quadrado volta ao número original. Se math.isqrt(n)**2 == n, então n é quadrado perfeito; caso contrário, não é.
Passo 3
Por fim, devolvemos True quando a condição do passo anterior for satisfeita, e False caso contrário.
Resposta
import math
def eh_quadrado_perfeito(n):
# quadrado perfeito não pode ser negativo
if n < 0:
return False
# calcula a raiz quadrada inteira
r = math.isqrt(n)
# verifica se o quadrado da raiz inteira é o próprio número
return r * r == n
# quadrado perfeito não pode ser negativo
if n < 0:
return False
# calcula a raiz quadrada inteira
r = math.isqrt(n)
# verifica se o quadrado da raiz inteira é o próprio número
return r * r == n
Exemplos de uso
garantia1 = eh_quadrado_perfeito(16) # True
garantia2 = eh_quadrado_perfeito(20) # False
garantia2 = eh_quadrado_perfeito(20) # False