求大神解答关于大数幂的运算和去模运算,谢谢!!c语言

RT
比如说,2的10000000次方,我用double倒是可以算,但是如何去模呢。。。
2的10000000次方对1234567取模。。。
谢谢大神们!

快速幂取模,对数时间。

 //求a的b次方对x取余数
int powmod(int a,int b,int x){
    int ans = 1;
    while( b ){
        if ( b & 1 ) ans = ans * a % x;
        a = a * a % x;
        b = b >> 1;
    }
    return ans;
}

我记得以前在蓝桥杯上做过这样的题,你可以使用一个for循环进行计算,然后在每次计算以后就用得数对1234567取模,然后再使用取模后的数继续进行
运算,这样就不会溢出了。