问题 2486 --快速幂(完善程序)

2486: 快速幂(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 494  解决: 350
[提交][状态][命题人:]

题目描述

请完善下面的程序,该程序使用分治法求 x^p mod m的值。

#include <bits/stdc++.h>
using namespace std;
int x,p,m,i,result;
int main() {
    cin>>x>>p>>m;
    result=______(1)______;
    while(_____(2)______)
    {
        if(p%2==1)
        {
            result=_____(3)______;
        }
        p/=2;
        x=______(4)_______;
    }
    cout<<_____(5)_____<<endl;
    return 0;
}



输入

三个不超过 10000的正整数 x, p, m .

输出

x^p mod m的值。
样例输入
Copy
12  2  10
样例输出
Copy
4

提示

若p为偶数,x^p = (x^2)^p/2; 若p为奇数,x^p = x * (x^2)^[(p-1)/2]

来源

 

[提交][状态]