I am puzzled with the following simple problem:
Given positive integers b, c, m
where (b < m) is True
it is to find a positive integer e
such that
(b**e % m == c) is True
where ** is exponentiation (e.g. in Ruby, Python or ^ in some other languages) and % is modulo operation. What is the most effective algorithm (with the lowest big-O complexity) to solve it ?
Example:
Given b=5; c=8; m=13 this algorithm must find e=7 because 5**7%13 = 8
Thank you in advance!