已知x≡a(modp),y≡b(modp)x\equiv a\pmod p,y\equiv b\pmod px≡a(modp),y≡b(modp)求d≡gcd(a,b)(modp)d\equiv gcd(a,b)\pmod pd≡gcd(a,b)(modp)最大值。p为素数
已知x≡a(modp),y≡b(modp)x\equiv a\pmod p,y\equiv b\pmod px≡a(modp),y≡b(modp)求d≡gcd(a,b)(modp)d\equiv gcd(a,b)\pmod pd≡gcd(a,b)(modp)最大值。p为素数。
1、当a=b=0a=b=0a=b=0时,x=k1p,y=k2px=k_1p,y=k_2px=k1p,y=k2p,无论k1,k2k_1,k_2k1,k2如何取值,gcd(x,y)≡0(modp)gcd(x,y) \equiv 0\pmod pgcd(x,y)≡0(modp)恒成立。
2、讨论其中一个为0的情况。不妨设b=0,我们可以构造出x=(p−a)(p−1),y=p(p−1)x=(p-a)(p-1),y=p(p-1)x=(p−a)(p−1),y=p(p−1)。
显然满足x≡a(modp),y≡b(modp)x\equiv a\pmod p,y\equiv b\pmod px≡a(modp),y≡b(modp)
又因为gcd(p−a,p)=1gcd(p-a,p)=1gcd(p−a,p)=1,所以gcd(x,y)=p−1gcd(x,y)=p-1gcd(x,y)=p−1,此时的gcd在模p下取得最大值。
3、讨论a和b都不等于0的情况。不妨设a≥ba\ge ba≥b,构造x=k1(p−1),y=k2(p−1)x=k_1(p-1),y=k_2(p-1)x=k1(p−1),y=k2(p−1),其中k1=p−a,k2=p−bk_1=p-a,k_2=p-bk1=p−a,k2=p−b,显然满足x≡a(modp),y≡b(modp)x\equiv a\pmod p,y\equiv b\pmod px≡a(modp),y≡b(modp)。
但是并不能保证gcd(k1,k2)=1gcd(k_1,k_2)=1gcd(k1,k2)=1,从而不能保证gcd(x,y)=p−1gcd(x,y)=p-1gcd(x,y)=p−1。
现在进一步的构造k1k_1k1。
不妨设k1/=xp+k1k_1^/=xp+k_1k1/=xp+k1,因为gcd(k2,p)=1gcd(k_2,p)=1gcd(k2,p)=1,所以方程xp+yk2=1xp+yk_2=1xp+yk2=1 一定有整数解,从而我们可以通过扩展欧几里得算法解出正整数解x,那么有xp≡1(modk2)xp\equiv 1\pmod {k_2}xp≡1(modk2),从而我们可以构造出新的k1/=(k2−k1+1)xp+k1k_1^/=(k_2-k_1+1)xp+k_1k1/=(k2−k1+1)xp+k1,此时的k1/k_1^/k1/满足k1/≡1(modk2)k_1^/\equiv 1\pmod {k_2}k1/≡1(modk2),从而gcd(k1/,k2)≡1(modk2)gcd(k_1^/,k_2)\equiv 1\pmod {k_2}gcd(k1/,k2)≡1(modk2),又因为k1≤k2k1\le k_2k1≤k2,所以gcd(k1/,k2)=1gcd(k_1^/,k_2)=1gcd(k1/,k2)=1,即k1/k_1^/k1/与k2k_2k2互质。
从而x=k1/(p−a),y=k2(p−a),gcd(x,y)=p−1x=k_1^/(p-a),y=k_2(p-a),gcd(x,y)=p-1x=k1/(p−a),y=k2(p−a),gcd(x,y)=p−1