Euclid算法:
-
如果
a
除以b
能整除,則最大公約數是b
。 -
否則,最大公約數等於
b
和a%b
的最大公約數。#include<stdio.h>
int main()
{
int a,b,num1,num2,temp;
printf("Input a & b:");
scanf("%d%d",&num1,&num2);
if(num1>num2) /*找出兩個數中的較大值*/
{
temp=num1; num1=num2; num2=temp; /*交換兩個整數*/
}
a=num1; b=num2;
while(b!=0) /*採用輾轉相除法求最大公約數*/
{
temp=a%b;
a=b;
b=temp;
}
printf("The GCD of %d and %d is: %d/n",num1,num2,a); /*輸出最大公約數*/
printf("The LCM of them is: %d/n",num1*num2/a); /*輸出最小公倍數*/
return 0;
}