引例
当输入两个数值m,n时,最大公因数最大也会与俩个数中最小的值相同此时m%n==0,
但一般情况m%n!=0,此时需要以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数
就比如312 与 16
312/16=19......8 余数一定小于除数
615 / 152 = 4.......7
152 / 7 = 21(余5)
7 / 5 = 1 (余2)
5 / 2 = 2 (余1)
2 / 1 = 2 (余0)
原理
A=B*q+R
A为被除数,B为除数,R为余数
A与B的公因数都会是B与R的公因数,即(A,B)=(B,R)
证明:
充分性
设 A,B (A<B)最大公因数为u,所以
A = a * u ,B = b *u
R = A - B* q = (a-b*q)u 因为a,b,q 都为整数所以修改为:
R = n * u
所以如果u 是R 的公因数,那么也会是A B 的公因数