Obtener siguiente cuadrado perfecto en Javascript

Introducción

Un cuadrado perfecto es aquel número entero que al sacarle raíz cuadrada sigue siendo un número entero. Por ejemplo, 25 lo es; ya que su raíz cuadrada es 5, y 5 es un entero.

No pasa lo mismo para 24, ya que su raíz es algo como 4.89.

Vamos a escribir una función en Javascript para calcular o estimar el siguiente cuadrado perfecto de otro cuadrado perfecto.

Más información aquí: https://es.wikipedia.org/wiki/Cuadrado_perfecto

Ejercicio

Veremos cómo buscar el siguiente cuadrado perfecto de un número. Si, por ejemplo, introducimos 25, la función tiene que devolver 36. Y así sucesivamente.

Dicha función también debe ser lo suficientemente inteligente para saber si el número que le asignamos no es un cuadrado perfecto, y en este caso debe devolver -1. Por ejemplo, si le pasamos un 24 devuelve -1. Si le pasamos 25 devuelve 36.

Solución

Aquí el código fuente, abajo lo explico.

Primeramente comprobamos si la raíz es un número entero. En caso de que sí, hacemos el cálculo del siguiente cuadrado perfecto. Para ello, sumamos el cuadrado perfecto mas dos veces el lado del siguiente, y finalmente restamos 1.

Ejemplo

Por ejemplo, veamos qué pasa con el número 25. Su raíz cuadrada es  5, así que pasa la prueba. Para calcular el siguiente, sumamos 25 + (6 * 2) y restamos 1.

¿De dónde sale el 6? es el siguiente número después del 5. Es decir, a la raíz (que es 5) le sumamos 1, y obtenemos 6. El 6 lo multiplicamos por 2. Y a todo eso le restamos 1.

Así que se descompone así:

  • Primero: 25 + ((5 + 1) * 2) -1
  • Luego: 25 + (6 * 2) – 1
  • Reducimos a: 25 + 12 – 1
  • Queda en esta simple operación: 25 + 11
  • Que da este resultado: 36

¡Listo! con esto terminamos por hoy. Aquí dejo algunas pruebas…

Siguiente cuadrado perfecto | JS
Siguiente cuadrado perfecto | JS

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario