(快速幂)请完善下面的程序,该程序使用分治法求x^p mod m 的值。(第一空2分,其余3分)
输入: 三个不超过1000的正整数x,p,m。
输出: x^p mod m 的值
提示: 若p为偶教,x^p=(x^2)^(p/2);若p为奇数。x^p=x*(x^2)^((p-1)/2))。
#include <iostream>
using namespace std;
int x, p, m, i, result;
int main() {
cin>>x>>p>>m;
result= 1 ;
while ( p!=0或p ) {
if(p%2==1)
result = result*x % m ;
p /= 2;
x= x*x%m ;
}
cout<< result << endl;
return 0;
}