Tutorial Link : http://blog.forthright48.com/2015/08/modular-exponentiation.htm
Code :
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll int bigmod(ll int b,ll int p,ll int m)
{
if(p==0) return 1%m;
else if(p%2==0)
{
ll int y= bigmod(b,p/2,m);
return (y*y)%m;
}
else return (b*(bigmod(b,p-1,m)))%m;
}
int main()
{
ll int b,p,m;
scanf("%lld%lld%lld",&b,&p,&m);
printf("%lld",bigmod(b,p,m));
}
Code :
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll int bigmod(ll int b,ll int p,ll int m)
{
if(p==0) return 1%m;
else if(p%2==0)
{
ll int y= bigmod(b,p/2,m);
return (y*y)%m;
}
else return (b*(bigmod(b,p-1,m)))%m;
}
int main()
{
ll int b,p,m;
scanf("%lld%lld%lld",&b,&p,&m);
printf("%lld",bigmod(b,p,m));
}
No comments:
Post a Comment