1326:【例7.5】 取余运算(mod)
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 6537 通过数: 2960
【题目描述】
输入b,p,k的值,求bpmodk的值。其中b,p,k×k为长整型数。
【输入】
输入b,p,k的值。
【输出】
求bpmodk的值。
【输入样例】
2 10 9
【输出样例】
2^10 mod 9=7
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
const int N = 1010;
int a[N];
ll power_M(ll a,ll b,ll m){
ll res = 1;
while(b)
{
if(b&1)
res = (res*a) % m;
a = (a * a) % m; //奇数
b >>= 1; //右移一位
}
return res;
}
int main(){
ll a,b,m;
scanf("%lld%lld%lld",&a,&b,&m);
printf("%lld^%lld mod %lld=%lld\n", a,b,m,power_M(a,b,m));
return 0;
}