指数的 BigIntegers(在函数 pow 中)

BigIntegers for exponent (in function pow)

我正在尝试制作一个程序,您可以在其中给 BigIntegers 求出它们的幂和 returns 最后一位。但是我无法通过任何方式将 bigInteger 传递给 pow method.Is ?

Note: I dont want to change the bigInteger to an int

代码:

import java.math.BigInteger;


fun main(args: Array<String>) {
    println(lastDigit(BigInteger("1606938044258990275541962092341162602522202993782792835301376"),BigInteger("2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376")))
}

fun lastDigit(base: BigInteger, exponent: BigInteger): Int {
    
    var allDigits : String = base.pow(exponent).toString()
    
    return allDigits[allDigits.count()-1].toInt()
}

输出:

Type mismatch: inferred type is BigInteger but Int was expected

如果 BigInteger 指数足够小,您可以先使用 BigInteger.intValue().

将其转换为 Int

但是,如果您确实需要使用 BigInteger 范围内的实际指数,您可能需要考虑您的计算机在内存中实际可以容纳什么。 请查看 this existing question,我猜它是你的副本(它在 Java 中,但大致相同 API)。