欧拉定理 

如果正整数a , n 互质 gcd(a,n) = 1  , 则 

欧拉降幂公式_ios

 , 其中 

欧拉降幂公式_i++_02

 是欧拉函数。

 推论 :  

如果正整数 a, n 互质 ,则 对于任意正整数 b , 有 

欧拉降幂公式_ios_03

 .

降幂公式

欧拉降幂公式_i++_04

模板题 : 点击

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std ;
typedef long long LL;
char b[1000006] ;
LL a ,c ;
LL qpower(LL a ,LL b ,LL mod ) {
    LL ans = 1 ;
    while(b){
        if(b&1) {
            ans = ans* a%mod ;
        }
        a = a*a %mod ;
        b>>=1 ;
    }
    return ans %mod;
}
LL phi(LL n) { // 求单个值的欧拉函数
	LL ans = n ;
	for(int i = 2 ; i*i<=n ; i++ ) {
		if(!(n%i)){
			ans = ans/i*(i-1) ;
			while(n%i == 0 ){
				n/=i ;
			}
		}
	}
	if(n>1) ans = ans/n*(n-1) ;
	return ans ;
}

int main(){

	while(~scanf("%lld %s %lld",&a,b,&c)){
		LL len = strlen(b) ;
		LL p = phi(c) ;
		LL ans = 0 ;
		for(LL i = 0 ; i<len ; i++){
			ans = (ans*10 +b[i] -'0')%p ;
		}
		ans +=p ;
		printf("%lld\n",qpower(a,ans,c));
		
	}




    return 0 ;
}