1326: 取余运算(mod)

 

【题目描述】

输入bpk

的值,求bpmodk的值。其中bpk×k

为长整型数。

【输入】

输入bpk

的值。

【输出】

bpmodk

的值。

【输入样例】

2 10 9

【输出样例】

2^10 mod 9=7
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define sf(a) scanf("%d\n",&a)
#define e 1e-8
#define ms(a) memset(a,0,sizeof a)
#define rep(a,b,c) for(a=b;a<=c;a++)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const int idata=5e6+5;
int ans;
int b,p,k;

int solve(int index)
{
    if(index==0) return 1;

    int total;
    int temp=solve(index/2)%k;
    if(index & 1)
    {
        return temp*((temp*(b%k))%k)%k;
    }
    else
    {
        return (temp*temp)%k;
    }

}

int main()
{
    cin>>b>>p>>k;
    int temp=b;
    b%=k;
    printf("%d^%d mod %d=%d\n",temp,p,k,solve(p)%k);
}

 

你可能感兴趣的:(信息学奥赛,#,分治算法)