Как вычислить с помощью корутин факториал в Kotlin?

Есть задача - вычислить факториал в Котлин. С помощью рекурсии решил быстро, но вот как решить это при помощи корутин - не пойму. Подскажите куда копать!

Вот мой код (рекурсия)

fun factorial (n: Int): Int {
    if( n!=1 ) {
        return n * factorial(n-1);
    } else return 1
}

Ответы (1 шт):

Автор решения: Fox Code

Нашел решение в Сети. Единственное что изменил - контекст корутин на Dispatchers.IO, чтобы ресурсы задействовать по макс. Вот код, может кому пригодится

suspend fun factCor(num: Int): BigInteger =
    withContext(Dispatchers.IO) {
        var fact = BigInteger.ONE
        for (i in 1..num) {
            fact = fact.multiply(BigInteger.valueOf(i.toLong()))
        }
        fact
    }
→ Ссылка