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.

function obtenerSiguienteCuadradoPerfecto(cuadradoPerfecto){

	// Obtener su raíz
	var raiz = Math.sqrt(cuadradoPerfecto);

	// Comparar si su raíz es un número entero
	if (raiz === parseInt(raiz)) {
		/*
			En caso de que sí, entonces calculamos el siguiente cuadrado perfecto.
			Para sacarlo, sumamos el cuadrado perfecto + la raíz del siguiente multiplicada por 2. Y a eso le restamos uno.
		*/
		var siguientecuadradoPerfecto = cuadradoPerfecto + ( (raiz + 1) * 2 ) - 1;
		return siguientecuadradoPerfecto;

	}else{
		// Si no, entonces no era un cuadrado perfecto
		return -1;
	}
}

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

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *