| 16 | |
| 17 | |
| 18 | bigint powerMod(const bigint& x,const bigint& e,const bigint& p) |
| 19 | { |
| 20 | bigint ans; |
| 21 | if (e>=0) |
| 22 | { mpz_powm(ans.get_mpz_t(),x.get_mpz_t(),e.get_mpz_t(),p.get_mpz_t()); } |
| 23 | else |
| 24 | { bigint xi,ei=-e; |
| 25 | invMod(xi,x,p); |
| 26 | mpz_powm(ans.get_mpz_t(),xi.get_mpz_t(),ei.get_mpz_t(),p.get_mpz_t()); |
| 27 | } |
| 28 | |
| 29 | return ans; |
| 30 | } |
| 31 | |
| 32 | |
| 33 | int powerMod(int x,int e,int p) |
no test coverage detected