求兩個正整數m,n的最大公約數和最小公倍數代碼:
#include <stdio.h>
void main()
{
int m,n,gcd,lcm; /gcd為最大公約數,lcm為最小公倍數/
int max,min,swap; /max為m,n中較大值,min為m,n中較小值/
printf("輸入兩個正整數m和n
");
scanf("%d %d",&m,&n);
max=m>n?m:n; /返回m,n中較大值給max/
min=m<n?m:n; /返回m,n中較小值給min/
swap=min; /較大值不能整除較小值時用得到/
if(max%min==0)
{
gcd=min;
printf("最大公約數gcd=%d",gcd);
}
while(swap!=0)
{
swap=swap-1; /往較小值下面找/
if(max%swap==0 && min%swap==0)
{
gcd=swap;
printf("最大公約數gcd=%d",gcd);
break; /找到停止循環/
}
}
lcm=m*n/gcd;
printf("最小公倍數lcm=%d",lcm);
}