Comprimento necessário

int main() {
	int rs = 0;
	ull x;
	int n;
	cin >> n;
	cin >> x;

	if (x == 1 && n > 1) {
		cout << -1 << endl;
		return;
	}
	
	int num = log10(x) + 1;
	while (num < n) {
		int max_char = 0;
		ull l = x;
		for (int i = 0; i < num; i++) {
			max_char = max(max_char, static_cast<int>(l % 10));
			l /= 10;
		}
		x *= max_char;
		rs++;
		num = log10(x) + 1;
	}
	cout << rs << endl;
}
Open Ocelot