最大公约数,最小公倍数

最大公约数

辗转相除法
用第一次的余数作为除数,第一次的除数作为被除数,如此往复;
最后返回a;

#include<stdio.h>

int main(){
	int a,b,c;
	scanf("%d %d",&a,&b);   //a>b
	while(b){
		c=a%b;
		a=b;
		b=c;
	}
	printf("%d\n",a);
	return 0;
}

递归

int gcd(int a,int b){
	return b?gcd(b,a%b):a;
}

最小公倍数

掌握了上面2种最大公约数,最大公倍数就是2个数的乘积除以最大公约数

上一篇:纪中10日T1 2300. 【noip普及组第一题】模板题


下一篇:求两个数的最大公约数,Euclid算法证明,以及C语言代码实现