2.5快速幂及快速乘
int qmul(int x,int y) { int s=0; while(y) { if(y&1) s=(s+x)%p; x=(x+x)%p; y>>1; } return s%p; } int qpow(int x,int y) { int s=1; while(y) { if(y&1) s=qmul(s,x); x=qmul(x,x); y>>1; } return s%p; }
时间: 2024-10-14 05:52:29
int qmul(int x,int y) { int s=0; while(y) { if(y&1) s=(s+x)%p; x=(x+x)%p; y>>1; } return s%p; } int qpow(int x,int y) { int s=1; while(y) { if(y&1) s=qmul(s,x); x=qmul(x,x); y>>1; } return s%p; }