Олимпиадный тренинг

Задача . B. Неквадратное уравнение


Рассмотрим уравнение:

x2 + s(xx - n = 0, 

где x, n — целые положительные числа, s(x) — функция, равная сумме цифр числа x в десятичной системе счисления.

Вам дано целое число n, найдите наименьший целый положительный корень уравнения x, или определите, что таких корней нет.

Входные данные

В единственной строке записано целое число n (1 ≤ n ≤ 1018) — параметр уравнения.

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.

Выходные данные

Выведите -1, если уравнение не имеет целых положительных корней. Иначе выведите такое наименьшее целое x (x > 0), что описанное в условии равенство выполняется.

Примечание

В первом тестовом примере x = 1 является наименьшим корнем. Так как s(1) = 1 и 12 + 1·1 - 2 = 0.

Во втором тестовом примере x = 10 является наименьшим корнем. Так как s(10) = 1 + 0 = 1 и 102 + 1·10 - 110 = 0.

В третьем тестовом примере корней у уравнения нет.


Примеры
Входные данныеВыходные данные
1 2
1
2 110
10
3 4
-1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя