洛谷P1226 【模板】快速幂||取余运算

题目描述

输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。

输入输出格式

输入格式:

 

三个整数b,p,k.

 

输出格式:

 

输出“b^p mod k=s”

s为运算结果

 

输入输出样例

输入样例#1: 复制

2 10 9

输出样例#1: 复制

2^10 mod 9=7
#include<cstdio>
#include <iostream>
using namespace std;

long long powermod(long long a,long long b, long long c)
{
    a%=c;
    long long ans=1;
    while(b)
    {
        if(b&1)
          ans=ans*a%c;
        b>>=1;
        a=a*a%c;
    }
    return ans%c;
}

int main()
{
    long long a,b,c,s;
    scanf("%lld%lld%lld",&a,&b,&c);
    s=powermod(a,b,c);
    cout<<a<<"^"<<b<<" mod "<<c<<"="<<s;
    return 0;
}

 

posted @ 2018-09-25 21:02  浮生惘语  阅读(137)  评论(0编辑  收藏  举报