Склад, имеющий форму прямоугольного параллелепипеда АВСDA1B1C1D1 размером плотно заставлен канистрами размером
канистр, если
а) p = 5, n = 3, k = 2 и выстрел произведен по диагонали АС1?
б) p = 26, n = 13, k = 5 и выстрел произведен по диагонали АС1?
в) Сколько канистр повредит пуля, пролетающая по диагонали АС1, если p = 1812, n = 1914, k = 1941?
Рассмотрим параллелепипед и введем в нем систему координат с началом в точке A и осями x, y, z, направленными по ребрам AB, AD, AA1 соответственно. Проведем k · n · p плоскостей перпендикулярно каждой из координатных осей.
С левыми гранями канистр совпадает k плоскостей при x = 0, 1np, 2np, ... (k − 1)np. С передними гранями канистр совпадает n плоскостей при y = 0, 1kp, 2kp, ... (n − 1)kp. С нижними гранями канистр совпадает p плоскостей при z = 0, 1kn, 2kn, ... (p − 1)kn. Пересекая данные плоскости, пуля оставит входные отверстия в левых гранях k канистр, передних гранях n канистр и нижних гранях p канистр, пробив всего k + n + p канистр.
Заметим, что плоскости x = Anp и y = Bkp являются гранями одной и той же канистры, если Anp = Bkp. Данное число должно быть кратно k и n. В этих канистрах входное отверстие расположено на левом переднем ребре и принадлежит одновременно левой и передней граням. Количество таких канистр равно
Эти канистры были учтены дважды, следовательно, из суммы k + n + p необходимо вычесть НОД(k, n).
Аналогично, необходимо вычесть НОД(n, p)  — количество канистр, в которых входное отверстие располагается на переднем нижнем ребре и НОД(k, p)  — количество канистр, в которых входное отверстие располагается на левом нижнем ребре.
Кроме того, могут быть канистры, в которых входное отверстие расположено в левом нижнем переднем углу, при условии Anp = Bkp = Ckn. Таких канистр НОД(k, n, p). В сумме k + n + p эти канистры были учтены трижды, но они были также учтены в количестве канистр, для которых входное отверстие находится на ребре, и, соответственно, трижды вычтены от результата. Cледовательно, это количество канистр нужно прибавить. Окончательно получим:
N = n + p + k − НОД(n, p) − НОД(n, k) − НОД(p, k) + НОД(n, p, k).
Заметим, что если входное отверстие расположено на левой, передней или нижней грани канистры, то при движении слева-направо спереди-назад снизу-вверх пуля, войдя внутрь канистры, обязательно выйдет из нее, следовательно, количество входных отверстий равно количеству пробитых канистр.
а) При p = 5, n = 3, k = 2 получим
N = 3 + 5 + 2 − НОД(3, 5) − НОД(3, 2) − НОД(5, 2) + НОД(3, 5, 2) = 10 − 1 − 1 − 1 + 1 = 8,
p + n + k − 3 = 7.
Следовательно, повредить более чем p + n + k − 3 канистр можно.
б) При p = 26, n = 13, k = 5 получим
N = 13 + 26 + 5 − НОД(13, 26) − НОД(13, 5) − НОД(26, 5) + НОД(13, 26, 5) = 44 − 2 − 1 − 1 + 1 = 41,
p + n + k − 3 = 41.
Следовательно, повредить более чем p + n + k − 3 канистр нельзя.
в) При p = 1812, n = 1914, k = 1941 получим
N = 1914 + 1812 + 1941 − НОД(1914, 1812) − НОД(1914, 1941) − НОД(1812, 1941) + НОД(1914, 1941, 1812) =
= 5667 − 6 − 3 − 3 + 3 = 5658.
Следовательно, будет повреждено 5658 канистр.
Ответ: а) да, б) нет, в) 5658.
Приведем другое решение
Рассмотрим параллелепипед и введем в нем систему координат с началом в точке A и осями x, y, z, направленными по ребрам. AB, AD, AA1 соответственно. Прямая AC1 пересекает плоскости x = 1, x = 2, ..., x = k, y = 1, y = 2, ..., y = n, z = 1, z = 2, ... z = p ровно по одному разу (именно при этих пересечениях образуются дырки в канистрах). Всего этих пересечений не более чем
а) Повредить 8 канистр можно. Ясно, что в этом пункте как раз и реализуется такой случай: все точки прямой имеют вид Если, например, 3t и 2t будут целыми одновременно, то и их разность
будет целой, что невозможно (кроме концов диагонали). Аналогично не могут быть целыми 5t и 2t
или 5t и 3t
б) Здесь точки прямой имеют вид (5t, 13t, 26t) и при например, сразу две координаты получаются целыми, поэтому будет пробито меньше нужного числа канистр.
в) Здесь точки прямой имеют вид (1941t, 1914t, 1812t). Для удобства нам понадобится следующая лемма.
Лемма. Пусть числа at, bt — целые. Тогда НОД(a, b) · t — тоже целое. Верно и обратное: если это произведение целое, то целыми будут и первые два.
Доказательство. Как известно, найдутся такие целые x и y, для которых где НОД(a, b) = c. Значит,
и потому целое. Обратное утверждение очевидно — at получается из ct домножением на некоторое целое число.
Отметим, что НОД(1941, 1914) = 3, НОД(1941, 1812) = 3, НОД(1812, 1914) = 6, поэтому при
происходит пересечение сразу с двумя плоскостями, а при
и
— сразу с тремя. Поэтому общее число выходных отверстий составит
Комментарий. В последнем пункте при
пуля проходит через общую вершину восьми канистр, но пробитыми все равно будут считаться только две.

