1 LL pow1_sum(LL a,LL b,LL mod) //a*b%mod 2 { 3 a=a%mod; 4 b=b%mod; 5 LL cur=0; 6 while(b) 7 { 8 if(b&1) 9 { 10 cur=cur+a; 11 if(cur>=mod) cur=cur-mod; 12 } 13 a=a<<1; 14 if(a>=mod) a=a-mod; 15 b=b>>1; 16 } 17 return cur; 18 } 19 LL pow_sum(LL a,LL b,LL mod) //a^b%mod 20 { 21 LL cur= 1; 22 a=a%mod; 23 while(b) 24 { 25 if(b&1) 26 { 27 cur=(cur*b)%mod; 28 } 29 a=(a*a)%mod; 30 b=b>>1; 31 } 32 return cur; 33 }