congruence ÀÏÂ÷ ÇÕµ¿½Ä a x¡Õb (mod m)¸¦ ä¿ì´Â x ¸¦ ¿ä±¸ÇÑ´Ù
int congruence(int a, int b, int m);
a ÇÕµ¿½Ä¿¡ ÀÖ´Â a b ÇÕµ¿½Ä¿¡ ÀÖ´Â b m ÇÕµ¿½Ä¿¡ ÀÖ´Â m
ÇÕµ¿½ÄÀÇ ÇØxÀÇ °ª(0¡Âx£¼m). ÇØ°¡ Á¸ÀçÇÏÁö ¾ÊÀ» ¶§´Â¡ª1.
int congruence(int a, int b, int m) { int c, d, e, f; int q, r; int tmp; c = a; e = b; d = m; f = 0; while ((r = c % d) ! = 0) { q = c / d; c = d; d = r; tmp = f; f = e - q * f; e = tmp; } if (b % d ! = 0) return -1; q = (f/d) % (m/d); if (q < 0) q += m/d; return q; }