【2027】最小公倍数

Time Limit: 3 second
Memory Limit: 2 MB

【问题描述】

     使用函数求出2个正整数的最小公倍数

【输入】

    两行,第一行为一正整数,第二行为另一正整数

【输出】

    一行。两数的最小公倍数

【输入样例】

    15
    12

【输出样例】

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


 

原文地址:https://www.cnblogs.com/AWCXV/p/7632498.html