不是VIP会员,不能显示答案

题目解答

题目:
(快速幂)请完善下面的程序,该程序使用分治法求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;
}
考点:
分析:
解答:
评论:
老师: