I am using the C++ language.
I want to calculate these 2 expressions:-
In our case, $x= 100000000000000000$
Expression(1)
$$((3^x-1)/2)\mod7$$
The numerator $3^x-1$ is always divisible by $2$(basic number theory)
I calculated the above expression using Extended-Euclid-Gcd algorithm.
The above algorithm only works when gcd(denominator,mod-value)=1...in our case $\gcd(2,7)=1$ . So we were able to calculate it using the above algorithm.
Expression(2)
$$((3^x-1)/2)\mod6$$
The numerator $3^x-1$ is always divisible by $2$(basic number theory-again)
Now, how do I calculate the above expression as $\gcd(2,6)=2$ which is not equal to $1$ ?
Answer
Set
$$y = \frac{3^x - 1}{2}.$$
Let $0 \leq b < 6$ such that $y = 6a + b$ for some integer $a$. Then
$$2y = 12a + 2b$$
and $0 \leq 2b < 12$, so you could simply compute $3^x - 1 \mod{12}$.
No comments:
Post a Comment