1. 程式人生 > >演算法競賽寶典 分治演算法 快速冪取模運算

演算法競賽寶典 分治演算法 快速冪取模運算

//理解快速冪運算即可,類似於加法

//理解快速冪運算即可,類似於加法

#include<iostream>
#include<algorithm>
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;
int main()
{
	ll n,x;
	ll p;
	cin>>x>>n>>p;
	ll result=1;
	while(n)
	{
		if(n&1==1)
			result=((result%p)*(x%p))%p;
		x=((x%p)*(x%p))%p;	//* %優先順序一樣,左結合性   左結合性:意思是從左向右執行運算
		n>>=1;
	}
	printf("%lld\n",result);			
	return 0;
}//ac