Este problema viene de una programación de la página web del concurso, pero me gustaría interesado en analizarlo desde las matemáticas prespectiva. Dado este problema, debemos crear un programa que nos puede dar el resultado correcto de la entrada dada. El programa se debe ejecutar en el plazo de los proporcionados por el sistema.
El Problema
Vamos a definir la función $s$ que tome los datos de entrada de enteros positivos tal que $s(x)$ es la suma de los dígitos de $x$.
Por ejemplo, $$s(1024) = 1 + 0 + 2 + 4 = 7$$
Dado un número entero constante $n$ como la entrada del programa. Ahora, encontrar un número entero positivo de la solución de $x$ en la ecuación
$$x^2 + s(x) \cdot x - n = 0.$$
Si hay más de una solución existe, elige el más bajo. Si la solución no existe, dar salida -1.
Límite de tiempo del programa: 2 segundo.
Gama de la entrada $n$: $[1, 10^{18}]$
La Solución
En la búsqueda de la solución, se puede recorrer de un rango de valores posibles de x, y tratar cada uno de estos valor si se satisface la ecuación o no.
Para mejorar el tiempo de ejecución del programa, se debe elegir el menor rango de x.
Mi Pregunta
¿Cuál es el menor rango de valores posibles de x que nos podría recorrer para encontrar la respuesta del problema anterior?
Hay una mejor manera de encontrar la solución sin que la iteración de la serie el posible valor de x?
Mi Intento:
Considere la posibilidad de que $$x^2 + s(x) \cdot x - n = 0$$ $$\Leftrightarrow x ( x + s(x) ) = n$$
y ya que tanto $x$ $(x + s(x))$ son enteros positivos y el producto de ambos número del es $n$, podemos concluir que $x$ $(x + s(x))$ es un par de positivos factor de $n$.
Desde $x$ es un factor de $n$, ahora tenemos el primer rango posible de $x$, que es $[1, n]$.
Pero, iterando $x$ durante este intervalo da mal funcionamiento del programa. Para pequeño valor de $n$, que no importa, pero para $n \geq 10^{17}$, el programa alcanzará es el límite de tiempo.
Si pudiera recordar correctamente, tenemos este teorema
$$x_1 \cdot x_2 = x$$
y
$$x_1 \leq x_2$$
implica que
$$x_1 \leq \sqrt{x} \leq x_2$$
Y desde $x (x + s(x)) = n$ $x \leq x + s(x)$
tenemos $x \leq \sqrt{n} \leq x + s(x)$
Ahora tenemos el segundo rango: $[1, \sqrt{n}]$
Pero, aún así, esta gama también dan mal rendimiento para grandes $n$.
Mi último intento es considerar el mayor valor posible de $s(x)$, que es el dígito de $x$ todos los $9$ $x$ menos de o igual al valor máximo de $n$, $10^{18}$.
$$s(x) \leq s(999,999,99 \cdots 9,999) = 9 \cdot 18 = 162$$
Por lo tanto, tenemos
$$x + s(x) \leq x + 162$$
de modo que, $$\sqrt{n} \leq x + s(x) \leq x + 162 \leq \sqrt{n} + 162$$ por lo tanto, $$\sqrt{n} - 162 \leq x \leq \sqrt{n}$$
Ahora, tenemos la mejor gama será más que suficiente para todo valor de $x$. $$l_1 = \max \{ 1, \sqrt{n} - 162 \}$$ $$l_2 = \sqrt{n}$$ el rango es de $[l_1, l_2]$
Pero, a pesar de que debe haber una mejor solución a este problema. De ahí que trate de $$l_1 = \max \{ 1, \sqrt{n} - 162/2 \}$$ Y que variedad es también correcto. Pero no puedo justificar mi hallazgo.
Así que, de ahí mi tercera pregunta:
- Por qué $l_1 = \max \{ 1, \sqrt{n} - 162/2 \}$ también nos da la solución correcta?