Es posible realizar una búsqueda binaria en cualquier lista ordenada: ya sea una lista de alturas crecientes, números enteros, números de punto flotante, etc. Incluso puede tratarse del conjunto de los números enteros , de los números naturales o de los números racionales . En cada iteración, seguiríamos eligiendo un rango de posibles soluciones y descartando la parte innecesaria.
Desafío
Dado un número entero positivo n, se te solicita determinar si es un cuadrado perfecto, sin utilizar la función sqrt.
Entrada
La entrada contiene un único número entero n (2 ≤ n ≤ ).
Salida
El programa debe imprimir Yes si n es un cuadrado perfecto y No en caso contrario.
Ejemplos
Entrada
Salida
9
Yes
8
No
16
Yes
26
No
Sugerencia
Si n es un cuadrado perfecto ⇒ existe otro número x tal que . Por lo tanto, puedes intentar encontrar x en el intervalo [1, 2, …, n].