欧几里得定理辗转相除证明

证明gcd(a,b)=gcd(b,a%b)

采用反证法

设gcd(a,b)=k

则设a=x1k,b=x2k

a%b=a-b * (a/b),a/b * b可以看做x3倍的k,所以a%b与b仍然有k这个公因数

假设有一个k'为gcd(b,a%b)

则b为k'的倍数,同时a%b为k'倍数因为b * (a/b)显然为k'倍数,所以则显然a也是k'的倍数

所以证得gcd(a,b)=k'与原条件不符,得证

int gcd(int a,int b){
	if(a%b==0){
		return b;
	}
	else{
		return gcd(b,a%b);
	}
}

完结

posted @ 2023-06-28 09:19  jt0007  阅读(13)  评论(1编辑  收藏  举报