Raiz quadrada simplificada

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

Exemplos

simplify_sqrt(72) ➞ (6, 2)

simplify_sqrt(160) ➞ (4, 10)

simplify_sqrt(36) ➞ (6, 1)

simplify_sqrt(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 a tupla (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.