由一道数论题引出的互素相关结论

昨天看到了这么一道数论题,题目大意如下:输入三个整数A,B,C,试判断 g c d ( A B − 1 , A C − 1 ) gcd(A^B-1,A^C-1) gcd(AB1,AC1)是否为 1 1 1,其中 1 < = A , B , C < = 1 e 9 1<=A,B,C<=1e9 1<=A,B,C<=1e9
这题数据很大,直接计算就算用高精度也无法实现,我们考虑一下对其进行数学上的分析。注意到 x n − 1 = ( x − 1 ) ( x n − 1 + x n − 2 + … + x + 1 ) ( 1 ) x^n-1=(x-1)(x^{n-1}+x^{n-2}+\ldots+x+1) (1) xn1=(x1)(xn1+xn2++x+1)(1),所以不难发现 A B − 1 和 A C − 1 A^B-1和A^C-1 AB1AC1都含有因式 A − 1 A-1 A1,只有当 A = 2 A=2 A=2时才有可能满足 g c d ( A B − 1 , A C − 1 ) = 1 gcd(A^B-1,A^C-1)=1 gcd(AB1,AC1)=1
所 以 现 在 只 需 讨 论 g c d ( 2 B − 1 , 2 C − 1 ) = 1 , 我 们 假 定 , B = q C + r , 那 么 2 B = 2 r ( 2 q C − 1 ) + 2 r − 1 ( 2 ) , 由 ( 1 ) 式 , 2 q C − 1 = ( 2 C ) q − 1 , 2 C − 1 ∣ 2 q C − 1 , 且 2 r − 1 < 2 C − 1 , 所 以 ( 2 ) 式 为 2 B − 1 和 2 C − 1 作 带 余 除 法 . 所以现在只需讨论gcd(2^B-1,2^C-1)=1,我们假定,B=qC+r,那么2^B=2^r(2^{qC}-1)+2^r-1(2),由(1)式,2^{qC}-1=(2^C)^q-1,2^C-1|2^{qC}-1,且2^r-1<2^C-1,所以(2)式为2^B-1和2^C-1作带余除法. gcd(2B1,2C1)=1B=qC+r,2B=2r(2qC1)+2r12,12qC1=(2C)q1,2C12qC1,2r1<2C122B12C1.
g c d ( 2 B − 1 , 2 C − 1 ) = g c d ( 2 r − 1 , 2 C − 1 ) gcd(2^B-1,2^C-1)=gcd(2^r-1,2^C-1) gcd(2B1,2C1)=gcd(2r1,2C1)
我们发现对 2 B − 1 和 2 C − 1 作 辗 转 相 除 法 相 当 于 2^B-1和2^C-1作辗转相除法相当于 2B12C1对其指数“辗转相除”,所以
g c d ( 2 B − 1 , 2 C − 1 ) = g c d ( 2 g c d ( 2 B − 1 , 2 C − 1 ) − 1 , 1 ) = 2 g c d ( 2 B − 1 , 2 C − 1 ) − 1 gcd(2^B-1,2^C-1)=gcd(2^{gcd(2^B-1,2^C-1)}-1,1)=2^{gcd(2^B-1,2^C-1)}-1 gcd(2B1,2C1)=gcd(2gcd(2B1,2C1)1,1)=2gcd(2B1,2C1)1
至此,我们推理出要使得 g c d ( 2 B − 1 , 2 C − 1 ) = 1 gcd(2^B-1,2^C-1)=1 gcd(2B1,2C1)=1,必须有 g c d ( B , C ) = 1 gcd(B,C)=1 gcd(B,C)=1,本题的数据量便被大幅度缩小。
其实,我们有一个更一般的结论。我们考虑 g c d ( x m − a m , x n − a n ) = 1 gcd(x^m-a^m,x^n-a^n)=1 gcd(xmam,xnan)=1的充要条件。
令 m = q n + r x m − a m = x q n + r − x r a q n + x r a q n − a q n + r = x r ( x q n − a q n ) + a q n ( x r − a r ) 又 有 x n − a n = a n ( x n a n − 1 ) = ( x − a ) ( a 0 x n − 1 + a 1 x n − 2 + … + a n − 1 x + a n ) 所 以 g c d ( x m − a m , x n − a n ) = g c d ( a q n ( x r − a r ) , x n − a n ) = x g c d ( m , n ) − a g c d ( m , n ) Q . E . D \begin{aligned} 令m&=qn+r\\ x^m-a^m&=x^{qn+r}-x^ra^{qn}+x^ra^{qn}-a^{qn+r}\\ &=x^r(x^{qn}-a^{qn})+a^{qn}(x^r-a^r)\\ 又有x^n-a^n&=a^n(\frac{x^n}{a^n}-1)\\&=(x-a)(a^0x^{n-1}+a^1x^{n-2}+\ldots+a^{n-1}x+a^n)\\ 所以gcd(x^m-a^m,x^n-a^n)&=gcd(a^{qn}(x^r-a^r),x^n-a^n)\\&=x^{gcd(m,n)}-a^{gcd(m,n)}\\ Q.E.D \end{aligned} mxmamxnangcd(xmam,xnan)Q.E.D=qn+r=xqn+rxraqn+xraqnaqn+r=xr(xqnaqn)+aqn(xrar)=an(anxn1)=(xa)(a0xn1+a1xn2++an1x+an)=gcd(aqn(xrar),xnan)=xgcd(m,n)agcd(m,n)

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值