#include <stdio.h>
int main()
{
int m,n,t;//16 12
scanf("%d%d",&m,&n);
if(m<n)
{
t=m,m=n,n=t;
}
while(m%n)
{
t=m%n;
m=n;
n=t;
}
printf("%d\n",n);
return 0;
}
2.
【问题描述】求输入的任意两个大于0的两个正整数a和b,求出其最大公约数和最小公倍数并输出。
【输入文件】从标准输入读取一行,是两个整数a和b,以空格分隔。
【输出文件】分别输出a、b的最大公约数和最小公倍数。
【输入样例】18 12
【输出样例】6 36
【样例说明】12和18的最大公约数是6,最小公倍数是36.
#include <stdio.h>
int main()
{
int m,n,a,b,j=0,t;//16 12
scanf("%d%d",&m,&n);
a=m,b=n;
if(m<n)
{
t=m,m=n,n=t;
}
while(m%n)
{
t=m%n;
m=n;
n=t;
}
j=a*b/n;
printf("%d %d",n,j);
return 0;
}
// 最小公倍数=两整数的乘积÷最大公约数