C/C++训练1---最大公约数与最小公倍数
Description
输入两个正整数,求它们的最大公约数与最小公倍数。
Input
输入两个正整数,两个整数之间用空格分开。
数据保证在 int 范围内。
Output
第一行输出最大公约数;
第二行输出最小公倍数。
答案保证在 int 范围内。
Sample
Input
64 48
Output
16
192
#include <stdio.h>
int main()
{
int a,b;
int r;
int x,y;
scanf("%d %d",&a,&b);
x=a;
y=b;
if(a<b)//先排序。大数在前
{
int t;
t=a;
a=b;
b=t;
}
for(; b!=0;) //求最大公约数:辗转相除法
{
r=a%b;
a=b;
b=r;
}
printf("%d\n%d\n",a,x*y/a);//最小公倍数:两数乘积除以最大公约数
return 0;
}