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 / 最大公約數