Time Limit: 3 second
Memory Limit: 2 MB
【问题描述】
使用函数求出2个正整数的最小公倍数【输入】
两行,第一行为一正整数,第二行为另一正整数
【输出】
一行。两数的最小公倍数
【输入样例】
1512
【输出样例】
60
【题解】
两个数的最小公倍数等于两个数的乘积除两个数的最大公因数.3个数a,b,c的最小公倍数,则先求出前两个数的最小公倍数x1,然后再求x1和c的最小公倍数x2,x2则为3个数的最小公倍数.
【代码】
#include <cstdio>
int a,b,gy,gb;
void input_data()
{
scanf("%d%d",&a,&b);
}
//18 12
//12 6
//6 0
//6是两个数的最大公因数
// 6*3 - 6*2 = 6*1
int gcd(int a,int b) //求两个数的最大公因数
{
if (b == 0)
return a;
else
return gcd(b,a % b);
}
void get_ans()
{
gy = gcd(a,b);
gb = (a*b)/gy; //两个数的最大公倍数等于两个数的乘积除两个数的最大公因数
}
void output_ans()
{
printf("%d
",gb);
}
int main()
{
//freopen("E:\rush.txt","r",stdin);
input_data();
get_ans();
output_ans();
return 0;
}