Уровень 10.5 задачника Kotlin

Задание 1

Дано число. Выведите на экран процесс разложения числа на простые множители, как в школе.

Задание 2

Дан произвольный двухмерный массив:

kotlinlet arr: Array<IntArray> = arrayOf(
  intArrayOf(11, 12, 13, 14, 15),
  intArrayOf(21, 22, 23, 24, 25),
  intArrayOf(31, 32, 33, 34, 35),
  intArrayOf(41, 42, 43, 44, 45),
  intArrayOf(51, 52, 53, 54, 55)
)

Обнулите элементы его главной диагонали:

kotlin[
  [ 0, 12, 13, 14, 15],
  [21,  0, 23, 24, 25],
  [31, 32,  0, 34, 35],
  [41, 42, 43,  0, 45],
  [51, 52, 53, 54,  0],
]
Задание 3

Дана коллекция Map:

kotlinval recursiveStructure = mapOf(
  "value" to 10,
  "children" to listOf(
    mapOf(
      "value" to 20,
      "children" to listOf(
        mapOf("value" to 30, "children" to emptyList()),
        mapOf("value" to 40, "children" to emptyList())
      )
    ),
    mapOf(
      "value" to 50,
      "children" to listOf(
        mapOf("value" to 60, "children" to emptyList())
      )
    )
  )
)

Найдите сумму всех значений value в древовидной структуре.