Supongamos que consideramos la suma [matemática] S = 1 + 3 + 5 + .. + (2k + 1) [/ matemática]
si calculamos la suma obtenemos [matemática] S = \ dfrac {k} {2} (2 + (k-1) 2) [/ matemática] usando la suma de un AP ([matemática] S = \ dfrac {n } {2} (2a_0 + (n-1) d) [/ matemáticas]).
Observe que [matemáticas] S = k ^ 2 [/ matemáticas]
Entonces, si comienza a sumar los números impares en secuencia hasta que la suma exceda el número dado, sabrá que es un cuadrado o no. Si la suma se vuelve exactamente igual al número dado, entonces tienes su raíz cuadrada exacta. p.ej.
- ¿Es sen ^ 2x + cos ^ 2x igual a -cos ^ 2x + sin ^ 2x?
- ¿Cuál es la aplicación del álgebra abstracta en física, excepto la teoría de grupos?
- ¿Qué es infinito más infinito?
- [matemáticas] y = \ cos ^ {- 1} (2x + x ^ 2) [/ matemáticas]. Encuentra [math] dy / dx [/ math] – ¿En esta pregunta podemos usar la regla de la cadena?
- Cómo integrar [math] \ int_0 ^ a (a \ csc \ theta) ^ 5 dx [/ math]
para [matemáticas] N = 9, 1 + 3 + 5 = 9 [/ matemáticas]. entonces, para 3 términos, la suma es exactamente igual, por lo tanto, la raíz es 3.
Este método es de [math] O (\ sqrt {N}) [/ math] complejidad.
Una solución mucho más fácil es simplemente recorrer hasta que el cuadrado sea menor que el número.
para (largo largo x = 1;; x ++) {
if (x * x == N) devuelve x;
de lo contrario si (x * x> N) devuelve -1;
}
pero usar la multiplicación es mucho más costoso que las sumas.
otro método sería utilizar el método de Newton para dar complejidad logarítmica, pero nuevamente esto requiere la división de “dobles”, por lo tanto, puede no ser exacto para cuadrados perfectos.
También hay un método probabilístico para esto. Mira este enlace Forma eficiente de determinar si un número es Cuadrado perfecto
si [matemáticas] a ^ {\ frac {p – 1} {2}} \; \ equiv \; 1 \; (mod \; p) \; [/ math] entonces el número es una raíz perfecta con probabilidad de [math] 1 – \ dfrac {1} {2 ^ q} [/ math] para q primos marcados.
También podría usar la búsqueda binaria para esto. Ideone.com