long long int big_mod(long long int base, long long int power, long long int mod)
{
if(power==0) return 1;
else if(power%2==1)
{
int p1 = base % mod;
int p2 = (big_mod(base,power-1,mod))%mod;
return (p1*p2)%mod;
}
else if(power%2==0)
{
int p1 = (big_mod(base,power/2,mod))%mod;
return (p1*p1)%mod;
}
}
this function returns negative value for (3 140068687 419634856) input. why is this happening? Can anyone explain please.