举例:输入两个正整数葡矩酉缸m和n,输出它们的最小公倍数和最大公约数。
代码:
#include&l墉掠载牿t;stdio.h>
intmain(void)
{
intgcd,lcm,m,n;
intrepeat,ri;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++)
{
scanf("%d",&m);
scanf("%d",&n);
if(m<=0||n<=0)
{printf("m<=0orn<=0");
continue;
}
for(gcd=m;gcd>=1;gcd--){
if(m%gcd==0&&n%gcd==0)break;
}
lcm=m*n/gcd;
printf("%d,%d\n",lcm,m,n,gcd,m,n);
}
}
运行效果:
输入输出示例:括号内为说明
输入:
3(repeat=3)
37(m=3,n=7)
244(m=24,n=4)
2418(m=24,n=18)
输出:
21,1.
24,4.
72,6.
扩展资料:
辗转相除法:
#include<stdio.h>
intmain()
{
intm,n;
scanf("%d%d",&a,&b);//输入两个整数
intnum1,num2,c;//num1,num2作为计算时的变量,c作为中间变量
if(a>=b){num1=a;num2=b;}
else{num1=b;num2=a;}//通过比较对num1和num2赋值,便于计算
while(num2>0){
c=num1%num2;
num1=num2;
num2=c;}//辗转相除,num2=0时,num1=最大公因数
printf("最大公因数:%d\n",num1);
printf("最小公倍数:%d\n"m*n/num1);
return0;
}