#include<stdio.h>
int main()
{
int m, n;
int gcd, lcm;
scanf("%d%d", &m, &n);
gcd = m < n ? m : n;
lcm = m > n ? m : n;
do
{
if(m % gcd == 0 && n%gcd==0)
break;
gcd--;
}while(1);
do
{
if(lcm % m == 0 && lcm % n==0)
break;
lcm++;
}while(1);
printf("gcd=%d lcm=%d\n", gcd, lcm);
return 0;
}
输入两正整数,输出其最大公约数最小公倍数的c程序,以“6 3”输入,调试如下:
#include<stdio.h>
int main(){
int a,b,t,r,n;
printf("请输入两个数字:\n");
scanf("%d %d",&a,&b);
if(a<b) {t=b;b=a;a=t;}
t=a;n=b;
do{
r=a%b;a=b;
b=r;
}while(r!=0);
printf("这两个数的最大公约数是\%d,最小公倍数是%d\n",b,t*n/b); return 0;
}
追答#include
int main(){
int a,b,t,r,n;
printf("请输入两个数字:\n");
scanf("%d %d",&a,&b);
if(a<b) {t=b;b=a;a=t;}
t=a;n=b;
do{
r=a%b;a=b;
b=r;
}while(r!=0);
printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,t*n/b); return 0;
}