[题目]:求最大公约数和最小公倍数。输入两个正整数 m 和 n (m≤1000, n≤1000 ),求其最大公约数和最小公倍数。试编写相 应程序。
[解析]:使用辗转相除法求最大公约数,输入两个数a和b。
1.求最大公约数
a b t=a%b
12 18 12
18 12 6
12 6 0
6 0
直到b=0,a就是最大公约数
2.最小公倍数=a*b/最大公约数
[代码]:
#include<stdio.h>
int main(void){
int a,b,s,m,t;
scanf("%d %d",&a,&b);
s=a;
m=b;
if(a<=0||b<=0||a>1000||b>1000){
printf("invalid");
}
while(b!=0){
t=a%b;
a=b;
b=t;
}
printf("gcd=%d\n",a);
//最小公倍数就是用a*b/最大公约数
printf("lcm=%d\n",s*m/a);
return 0;
}