蓝桥杯 历届试题 核桃的数量(水题,三个数的最小公倍数)

    2025-10-10 12:09:54

    问题描述

    小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:

    1. 各组的核桃数量必须相同

    2. 各组内必须能平分核桃(当然是不能打碎的)

    3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)

    输入格式

    输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)

    输出格式

    输出一个正整数,表示每袋核桃的数量。

    样例输入1

    2 4 5

    样例输出1

    20

    样例输入2

    3 1 1

    样例输出2

    3

    水题,这道题的实质是求 三个数的最小公倍数。

    之前没接触过求三个数的最小公倍数的题,查了一下,有多种方法,像分解质因数、短除法等。

    我的做法是先求出其中2个数的最小公倍数,然后求它与第三个数的最小公倍数,结果就是三个数的最小公倍数。

    1 #include

    2 using namespace std;

    3 int gcd(int n,int m)

    4 {

    5 if(n

    6 n=n+m;

    7 m=n-m;

    8 n=n-m;

    9 }

    10 while(n%m){

    11 int t=n%m;

    12 n=m;

    13 m=t;

    14 }

    15 return m;

    16 }

    17 int lcm(int n,int m)

    18 {

    19 return n*m/gcd(n,m);

    20 }

    21 int lcm_3d(int n,int m,int l)

    22 {

    23 return lcm(lcm(n,m),l);

    24 }

    25 int main()

    26 {

    27 int a,b,c;

    28 cin>>a>>b>>c;

    29 cout<

    30 return 0;

    31 }