Пусть x - количество мышек, пришедших в первую ночь.
Пусть y - количество сыра, съеденное одной мышкой в первую ночь.
Тогда, согласно условию, имеем:
\[x \cdot y = 8\]
Во вторую ночь пришло 15 мышек, и каждая съела в 4 раза меньше сыра, чем в первую ночь, то есть \(\frac{y}{4}\).
Пусть z - общее количество сыра, которое было изначально в погребе.
Тогда, количество сыра, которое съели 15 мышек во вторую ночь, равно \(z - 8\).
Получаем уравнение:
\[15 \cdot \frac{y}{4} = z - 8\]
Выразим y из первого уравнения: \(y = \frac{8}{x}\).
Подставим это во второе уравнение:
\[15 \cdot \frac{8}{4x} = z - 8\]
\[\frac{30}{x} = z - 8\]
\[z = \frac{30}{x} + 8\]
Так как x и z должны быть целыми числами (количество мышек и головок сыра), то x должно быть делителем числа 30. Возможные значения для x: 1, 2, 3, 5, 6, 10, 15, 30.
Если \(x = 1\), то \(z = 30 + 8 = 38\).
Если \(x = 2\), то \(z = 15 + 8 = 23\).
Если \(x = 3\), то \(z = 10 + 8 = 18\).
Если \(x = 5\), то \(z = 6 + 8 = 14\).
Если \(x = 6\), то \(z = 5 + 8 = 13\).
Если \(x = 10\), то \(z = 3 + 8 = 11\).
Если \(x = 15\), то \(z = 2 + 8 = 10\).
Если \(x = 30\), то \(z = 1 + 8 = 9\).
Так как во вторую ночь мышки доели оставшийся сыр, то \(z - 8 > 0\), что выполняется для всех найденных значений z.
Однако, по условию, в первую ночь мышки съели 8 головок сыра. Значит, изначально сыра должно было быть больше 8 головок, то есть \(z > 8\). Все найденные значения z удовлетворяют этому условию.
Так как сказано, что во вторую ночь пришли не все мышки, значит \(x > 15\), откуда следует, что \(x = 30\), а значит, \(z = 9\).
Проверим:
В первую ночь пришло 30 мышек, и они съели 8 головок сыра. Каждая мышка съела \(\frac{8}{30} = \frac{4}{15}\) головки сыра.
Во вторую ночь пришло 15 мышек, и они съели \(9 - 8 = 1\) головку сыра. Каждая мышка съела \(\frac{1}{15}\) головки сыра.
Сравним: \(\frac{4}{15}\) в 4 раза больше, чем \(\frac{1}{15}\), что соответствует условию задачи.
Таким образом, в погребе хранилось 9 головок сыра.
Ответ: 9