二分乘法主要是解决乘法的结果远超int范围,但需要的结果有取余的乘法运算
LL multi(LL a,LL b,LL m) { LL ans = 0; a %= m; while(b) { if(b & 1) { ans = (ans + a) % m; b--; } b >>= 1; a = (a + a) % m; } return ans; }