歐幾里得--核桃的數量

歷屆試題 核桃的數量  
時間限制:1.0s   內存限制:256.0MB
   
問題描述

小張是軟件項目經理,他帶領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


代碼:

import java.util.Scanner;

public class Main {
    public static int gcd(int p,int q)
    {
        if(q==0) return p;
        int r=p%q;
        return gcd(q,r);
    }
    public static void main(String[] args) {
        int a,b,c,s;
        Scanner sa=new Scanner(System.in);
        a=sa.nextInt();
        b=sa.nextInt();
        c=sa.nextInt();
        s=gcd(a,b);
        s=a*b/s;
        a=gcd(s,c);
        s=s*c/a;
        System.out.println(s);
    }

}

歐幾里得算法(輾轉相除法)用於求兩個數的最大公約數,又由於兩數字之積=最大公約數*最小公倍數,所以也可求最小公倍數

  public static int gcd(int p,int q)
    {
        if(q==0) return p;
        int r=p%q;
        return gcd(q,r);
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章