Хорошо, давайте разберемся с задачей, которую поставил перед собой Ваня.
Итак, Ваня хочет построить \( n \) пирамид, которые имеют \( k \) рядов. В каждом ряду количество кубиков зависит от номера этого ряда и от дополнительного количества кубиков, которые добавляются в зависимости от того, делится ли номер ряда на определённые числа.
Формально, давайте представим условия так:
- Пусть \( n \) — количество пирамид.
- Пусть \( k \) — максимальное количество рядов в каждой пирамиде.
- Пусть \( a_i \) — количество кубиков в \( i \)-м ряду.
Количество кубиков в \( i \)-м ряду зависит от следующего правила:
- Если номер ряда делится на \( j \) (где \( j \) от 2 до \( k \)), то в этот ряд добавляется \( a_j \) кубиков. Таким образом, кубики в \( i \)-м ряду можно выразить как:
\[ b_i = 1 + \sum_{j=2}^k (a_j \cdot \lfloor i / j \rfloor) \]
где \( b_i \) — общее количество кубиков в \( i \)-м ряду.
Теперь, чтобы определить общее количество кубиков, нужных для построения всех пирамид, мы можем воспользоваться следующей формулой:
\[ \text{Общее количество кубиков} = \sum_{p=1}^n \sum_{i=1}^{k} b_i \]
Это сумма по всем пирамидам и всем их рядам.
Теперь, когда у нас есть формула, давайте рассмотрим пример:
Допустим, \( n = 2 \) и \( k = 3 \) с следующими значениями \( a_2 = 2, a_3 = 3 \):
- Для 1-го ряда:
- \( b_1 = 1 \) (не добавляются дополнительные кубики)
- Для 2-го ряда:
- \( b_2 = 1 + a_2 = 1 + 2 = 3 \)
- Для 3-го ряда:
- \( b_3 = 1 + a_2 + a_3 = 1 + 2 + 3 = 6 \)
Теперь, используя эти значения для подсчета общего количества кубиков:
\[ \text{Общее количество кубиков} = n \cdot \left( b_1 + b_2 + b_3 \right) = 2 \cdot (1 + 3 + 6) = 2 \cdot 10 = 20 \]
Таким образом, Ване нужно 20 кубиков для строительства двух пирамид с 3 рядами.
Ваша задача теперь — реализовать эту логику в программе, учитывая, что для больших значений может понадобиться использовать 64-битные целые числа, чтобы избежать переполнения.
