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; }