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

Задача . A. Прибавляй и дели


У вас есть два положительных целых числа \(a\) и \(b\).

Вы можете выполнять операции двух видов:

  • \(a = \lfloor \frac{a}{b} \rfloor\) (заменить \(a\) на целую часть от деления \(a\) на \(b\))
  • \(b=b+1\) (увеличить \(b\) на \(1\))

Найдите минимальное количество операций, которое нужно, чтобы сделать \(a=0\).

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

В первой строке находится единственное целое число \(t\) (\(1 \le t \le 100\)) — количество наборов входных данных.

В единственной строке описания каждого набора входных данных находится два целых числа \(a\), \(b\) (\(1 \le a,b \le 10^9\)).

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

Для каждого набора входных данных выведите единственное целое число: минимальное количество операций, которое нужно, чтобы сделать \(a=0\).

Примечание

В первом наборе входных данных одно из оптимальных решений — следующее.

  1. Поделить \(a\) на \(b\). После этой операции \(a = 4\) и \(b = 2\).
  2. Поделить \(a\) на \(b\). После этой операции \(a = 2\) и \(b = 2\).
  3. Увеличить \(b\). После этой операции \(a = 2\) и \(b = 3\).
  4. Поделить \(a\) на \(b\). После этой операции \(a = 0\) и \(b = 3\).

Примеры
Входные данныеВыходные данные
1 6
9 2
1337 1
1 1
50000000 4
991026972 997
1234 5678
4
9
2
12
3
1

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

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