ntherner's blog

By ntherner, history, 23 months ago, In English

Hello codeforces,

Today, I am regretably in math class with the subject of modular arithmetic. While thinking about a problem, I reminded myself of a question I asked myself some time ago.

Given $$$p$$$ and $$$mod$$$, find a $$$q$$$ such that $$$q^2$$$ = $$$p$$$ (modulo $$$mod$$$). $$$mod$$$ is prime and ≫ $$$10^8$$$

Does this admit an online logarithmic-complexity solution?

  • Vote: I like it
  • +10
  • Vote: I do not like it

»
23 months ago, # |
Rev. 2   Vote: I like it +9 Vote: I do not like it

Yes, if you're fine with randomized approaches. See #8 here.

By the way, if $$$m \equiv 3 \pmod 4$$$, you can compute it as $$$q \equiv p^{\frac{m+1}{4}} \pmod{m}$$$ (see here).

»
23 months ago, # |
  Vote: I like it +3 Vote: I do not like it

Yes. The Tonelli-Shanks algorithm does it in logarithmic time. For an explanation, I think the Wikipedia article is straightforward enough.