输入两个正整数m和n,求其最大公约数和最小公倍数。
//题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 //求最大公约数用辗转相除法 // 最小公倍数=输入的两个数之积除于它们的最大公约数 #include<stdio.h> int main() { int a,b,t,r,n; printf("请输入两个数字:\n"); scanf("%d %d",&a,&b);//8 12 if(a<b) {t=b;b=a;a=t;}// a=12 b=8 // printf("a=%d b=%d\n",a,b); r=a%b;//r=4 n=a*b;//b=8*12=96 两个数的乘积 // printf("r=%d n=%d",r,n); //辗转相除 while(r!=0) { a=b;//a=8 b=r;//b=4 r=a%b;//r=0 96/4=24 } printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,n/b); return 0; }
测试: