1) Чтобы число делилось на 21 и было кубом некоторого натурального числа, оно должно быть кубом 21 (так как 21 = 3 * 7 и кубы трех и семи равны соответственно 27 и 343) и кратно 21^3. Наименьшее такое число будет равно 21^3 = 9261.
2) Количество способов построить маршрут улитки длины 9 можно посчитать с помощью динамического программирования.
Обозначим через dp[i][j] количество способов достичь точки (i, j) при текущем шаге длины k (k <= 9). Здесь i и j - координаты точки на клетчатой плоскости.
Изначально все значения dp[i][j] равны нулю, кроме точки (0, 0), где dp[0][0] = 1.
Далее, используя переходы только вправо (от точки (i, j) к (i+1, j)) и вверх (от точки (i, j) к (i, j+1)), обновляем значения dp[i][j] следующим образом:
dp[i][j] = dp[i-1][j] + dp[i][j-1]
После выполнения всех возможных шагов получим количество способов достичь точки (2, 5) за 9 шагов - это будет значение dp[2][5].
Простым перебором можно посчитать, что dp[2][5] = 56.
Таким образом, существует 56 способов построить маршрут улитки длины 9.