C语言辗转相除法(欧几里德算法)求最大公约数

算法叙述:

设(a,b)表示a和b的最大公约数

若c为a/b的余数(c=a%b)

则(a,b)=(b,c).

 

#include<stdio.h>
int gcd(int a,int b)
{
	return b ? gcd(b,a%b) : a;
	
}
int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF)
	      printf("%d\n",a>b?gcd(a,b):gcd(b,a));
	return 0;
}

 

其次,最小公倍数 = a*b / 最大公约数

你可能感兴趣的:(C语言辗转相除法(欧几里德算法)求最大公约数)