Raiz quadrada simplificada

Published by Mubashir Hassan in

Crie uma função que receba um inteiro positivo n e retorne a raiz quadrada simplificada de n como [_a_, _b_], onde a⋅sqrt(b) = sqrt(n) e b seja o menor possível.

Exemplos

simplifySqrt(72) ➞ [6, 2]

simplifySqrt(160) ➞ [4, 10]

simplifySqrt(36) ➞ [6, 1]

simplifySqrt(35) ➞ [1, 35]

Uma maneira comum de simplificar raízes quadradas é extrair repetidamente quadrados perfeitos do número sob a raiz quadrada. Por exemplo, se você precisar simplificar sqrt(72), poderá extrair quadrados perfeitos de 72 de acordo com o processo a seguir:

sqrt(72)

72 é divisível por 4, então extraia 4 de 72:

sqrt(4⋅18)

Agora é possível calcular a raiz quadrada do quadrado perfeito 4 e retirá-lo da raiz quadrada:

2⋅sqrt(18)

Agora repita o processo até que não seja possível extrair mais quadrados perfeitos. 18 é divisível por 9, então extraia-o:

2⋅sqrt(9⋅2)

Retire o 9, calcule sua raiz quadrada e simplifique:

2⋅3⋅sqrt(2)
= 6⋅sqrt(2)

2 não tem fatores quadrados perfeitos além de 1, então 6⋅sqrt(2) é a forma mais simples de sqrt(72). Portanto, a função retornaria [6, 2].

Esta é apenas uma abordagem para resolver este problema; provavelmente existem outras maneiras mais simples ou rápidas do que este método. Sinta-se à vontade para usar qualquer método que quiser.

Notas

  • Se n for um quadrado perfeito, b deverá ser 1.
  • Se n não tiver fatores quadrados perfeitos (além de 1), a deverá ser 1.