证:$a > b$ 且 $gcd(a,b)=1$,有 $gcd(a^n-b^n, a^m-b^m) = a^{gcd(n, m)} - b^{gcd(n,m)}$.

证明:

假设 $n > m$,$r = n \% m$.

根据辗转相除法,

$a^n - b^n = (a^m-b^m)(a^{n-m} + a^{n-2m}b^m + ...+) + a^rb^{n-r} - b^n$,

$gcd(a^n-b^n, a^m-b^m) = gcd(a^m-b^m, a^rb^{n-r}-b^n) = gcd(a^m-b^m, b^{n-r}(a^r-b^r))$,

因为 $r = n \% m$,所以 $b^{n-r} = b^{m\left \lfloor \frac{n}{m} \right \rfloor} = b^{km}$。

考虑 $gcd(b^{km}, a^m-b^m)$,

由多项式除法 $b^{km} = (a^m-b^m)(-b^{(k-1)m}- a^mb^{(k-2)m}-...-a^{(k-1)m}) + a^{km}$,

$gcd(b^{km}, a^m-b^m) = gcd(a^{km}, a^m-b^m) = d$,

$d | b^{km},\ d|a^{km}, \ d | gcd(b^{km}, a^{km})=1$,所以 $d=1$,即 $gcd(b^{n-r}, a^m-b^m)=1$.

所以 $gcd(a^n-b^n, a^m-b^m) = gcd(a^m-b^m, a^{n \% m}-b^{n \% m}) = a^{gcd(n,m)} - b ^ {gcd(n,m)}$.

(其实整个过程就是辗转相除法)

一个关于gcd的等式的证明的更多相关文章

  1. 一个关于AdaBoost算法的简单证明

    下载本文PDF格式(Academia.edu) 本文给出了机器学习中AdaBoost算法的一个简单初等证明,需要使用的数学工具为微积分-1. Adaboost is a powerful algori ...

  2. UVa 12716 GCD XOR (简单证明)

    题意: 问 gcd(i,j) = i ^ j  的对数(j <=i <= N ) N的范围为30000000,有10000组例子 思路:GCD(a,b) = a^b = c GCD(a/c ...

  3. 【数论】如何证明gcd/exgcd

    我恨数论 因为打这篇的时候以为a|b是a是b的倍数,但是懒得改了,索性定义 a|b 为 a是b的倍数 咳咳,那么进入正题,如何证明gcd,也就是 gcd(a,b) = gcd(b,a%b)? 首先,设 ...

  4. 最大公约数(gcd):Euclid算法证明

    1个常识: 如果 a≥b 并且 b≤a,那么 a=b. 2个前提: 1)只在非负整数范围内讨论两个数 m 和 n 的最大公约数,即 m, n ∈ N. 2)0可以被任何数整除,但是0不能整除任何数,即 ...

  5. 一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)

    导言:原文的作者是著名的Ghost和Spectre 这两个协议的创始团队的领队Aviv Zohar.原文作者说他的这篇原文又是引用了以下这两篇学术论文: How to Explain Zero Kno ...

  6. O(1) 查询gcd

    我们来安利一个黑科技.(其实是Claris安利来的 比如我现在有一坨询问,每次询问两个不超过n的数的gcd. n大概1kw,询问大概300w(怎么输入就不是我的事了,大不了交互库 http://mim ...

  7. IOS多线程 总结 -------------核心代码(GCD)

    //NSObject //在子线程中执行代码 // 参数1: 执行的方法 (最多有一个参数,没有返回值) //参数2: 传递给方法的参数 [self performSelectorInBackgrou ...

  8. 欧几里得算法求最大公约数(gcd)

    关于欧几里得算法求最大公约数算法, 代码如下: int gcd( int a , int b ) { if( b == 0 ) return a ; else gcd( b , a % b ) ; } ...

  9. 【学习笔记】关于最大公约数(gcd)的定理

    手动博客搬家: 本文发表于20181004 00:21:28, 原地址https://blog.csdn.net/suncongbo/article/details/82935140 结论1 \[\g ...

随机推荐

  1. 面试官问你MySQL的优化,看这篇文章就够了

    作者:zhangqh segmentfault.com/a/1190000012155267 一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单的示例 ...

  2. 遇到了NameError: name ‘name’ is not defined 这样的错误。

    改正:__name__ == "__main__" name的左右两边各有两条下划线,不是左右两边各有一条

  3. php位运算及其高级应用

    我们之前学过逻辑与(&&)      条件1 && 条件2 当两边条件同时成立时候返回1 逻辑或(||)         条件1 || 条件2    当两边条件只要有一 ...

  4. AS3.0 字母大小写转换

    字母大小写转换: /** * * *-------------------------* * | *** 字母大小写转换 *** | * *-------------------------* * * ...

  5. python基础_MySQL的bigint类型

    bigint支持的数字的大小范围为:19位,存电话号码.有符号范围:-9223372036854775808 到 9223372036854775807 int支持的数字范围为:10位,有符号范围:- ...

  6. Unity的学习笔记(UGUI文本逐个字输出)

    之前在网上找过各种的逐个输出字,我可能理解能力不好,照着代码复制没有能使用成功,于是自己研究了很多网上说的思路,各种改良出了一个能用的,写完自己测试,觉得还真好用,于是记录下来 用法:将用代码组件挂上 ...

  7. Bean进行操作的相关工具方法

    Bean进行操作的相关工具方法 /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p ...

  8. NEST analyze与mapping

    /// <summary> /// POST /_analyze?pretty=true /// POST /employee/_analyze /// </summary> ...

  9. 【转载】C#中List集合使用Remove方法移除指定的对象

    在C#的List集合操作中,有时候需要将特定的对象或者元素移除出List集合序列中,此时可使用到List集合的Remove方法,Remove方法的方法签名为bool Remove(T item),it ...

  10. js合并多个array

    Array.prototype.concat.call(array1, array2, array3, ...)