Description
For given integers m and n, compute mn (mod 1,000,000,007). Here, A (mod M) is the remainder when A is divided by M.
Input
mn
Two integers m and n are given in a line.
Output
Print mn (mod 1,000,000,007) in a line.
Constraints
- 1 ≤ m ≤ 100
- 1 ≤ n ≤ 109
Sample Input 1
2 3
Sample Output 1
8
Sample Input 2
5 8
Sample Output 2
390625
//方法有点像二分
#include <stdio.h>
#include <math.h>
#define mod 1000000007
typedef long long ll;
ll pow_mod(int a,int n){
if(n==0) return 1;
int x = pow_mod(a,n/2);
ll ans = (ll)x*x%mod;
if(n%2==1) ans =ans*a%mod;
return ans;
}
int main(){
int m,n,i;
long long sum;
scanf("%d %d",&m,&n);
sum = pow_mod(m,n);
printf("%lld\n",sum);
return 0;
}