所谓的快速幂:
// 计算 m^n % k 的快速幂算法
int quickpow(int m,int n,int k)
{
int b = ;
while (n > )
{
if (n & )
b = (b*m)%k;
n = n >> ;
m = (m*m)%k;
}
return b;
}
借助于上面的函数,本题目很容易就可以解决:
int main()
{
int n,m,x,k,data;
scanf("%d%d%d%d",&n,&m,&k,&x);
data=quickpow(,k,n);
printf("%d\n",(x+(m*data)%n)%n);
return ;
}