C - !সহজ ~কঠিন -- (二分求幂)

来源:互联网 发布:淘宝 手电大家谈 编辑:程序博客网 时间:2024/06/05 18:15
C - !সহজ ~কঠিন
Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu
Submit Status

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 1000000007typedef 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;}


0 0
原创粉丝点击