在 Kotlin 中查找简化的平方根

Find simplified square root in Kotlin

我想取一个像96这样的数字,调用squareRoot(96),得到一个return的“4√6”。

我试过很多不同版本的

但似乎没有任何效果。这让我发疯!我可以提供我写的函数来找出因子,但我认为它们不是特别复杂。

我在 python 这里 (python, square root simplification function) 找到了答案并将其翻译成 Kotlin:

fun squareRoot(n: Int): Pair<Int, Int> {
    var radical = n
    var coefficient = 1
    for (i in 2..radical) {
        if (radical % (i * i) == 0) {
            coefficient *= i
            radical /= i * i
            for (j in 2..radical) {
                if (radical % (j * j) == 0) {
                    coefficient *= j
                    radical /= j * j
                }
            }
        }
    }
    return Pair(coefficient, radical)
}