در محاسبات پیمانه ای مسئله یافتن یک ریشه دوم به پیمانه یک عدد اول مانند p را می توان به صورت یافتن یک عدد صحیح x به گونه ای توصیف کرد که:
x^{2}\equiv a \pmod{p}
که در آن a یک عدد صحیح و p یک عدد اول است. برای هر عدد a یک راه حل برای این معادله در پیمانه p وجود ندارد. با این حال، هنگامی که یک راه حل وجود دارد، الگوریتم Tonneli-Shanks یک روش کارآمد برای یافتن آن ارائه می دهد.
توجه کنید
این الگوریتم برای پیمانه های مرکب (غیر اول) کار نمی کند. یافتن ریشه دوم برای پیمانه های مرکب از نظر محاسباتی معادل فاکتورگیری اعداد صحیح است. یعنی مسئله سختی است.