Задача с вкладом

Решаю такую задачу:
Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Определите, через сколько лет вклад составит не менее y рублей.
Тестирующая система говорит что слшком долго, вероятно если x намного меньше y. Как можно оптимизировать?

#include <iostream>
using namespace std;

int main()
{
int x, p, y;
cin >> x >> p >> y;
int i = 0;

while (x < y) {
    x += (x * p / 100);
    i++;
}

cout << i;
}

Ответы (1 шт):

Автор решения: Эникейщик

Задача линейная (ключевое слово - логарифм). И считать надо сразу в копейках (введенные рубли перевести в них), тогда не надо будет отбрасывать дробную часть копеек.

→ Ссылка