gcd就是求a和b最大公约数,一般方法就是递推.不多说,上代码. 一.迭代法 int gcd(int m, int n) { ) { int c = n % m; n = m; m = c; } return n; } 二.递归法 int Gcd(int a, int b) { ) return a; return Gcd(b, a % b); } 但exgcd是个什么玩意??? 百度了一下,百科这么讲的: 对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然…
我恨数论 因为打这篇的时候以为a|b是a是b的倍数,但是懒得改了,索性定义 a|b 为 a是b的倍数 咳咳,那么进入正题,如何证明gcd,也就是 gcd(a,b) = gcd(b,a%b)? 首先,设 p = a/b,c = a mod b 则a = p*b + c m = gcd(a,b),n = gcd(b,c) 因为m = gcd(a,b),所以 a | m 且 b | m 因为 b | m 所以 b * p | m // a|b,则a*k|b (k为整数)…
目录 欧几里德算法与扩展欧几里德算法 1.欧几里德算法 2.扩展欧几里德算法 欧几里德算法与扩展欧几里德算法 1.欧几里德算法 #include<bits/stdc++.h> using namespace std; int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } //return b == 0 ? a : gcd(b, a % b); int main() { int m,n; while(cin>…