ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1-7: gcdlcm
    Basic 2018. 10. 24. 19:34

    최대공약수 최소공배수 (gcdlcm.cpp)

     

    문제


    두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.  

    입력


    첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

     

    출력


    첫째 줄에는 입력으로 주어진 두 수의 최대공약수를,둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

     

    예제 입력

    24 18

    예제 출력

    6
    72

     

    import java.util.Scanner;

    public class GCDLCM {
    /**
    * 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
    *
    *첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
    * 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를,둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
    *
    * 24 18
    *
    * 6
    * 72
    *
    * gcm * lcd = a*b;
    *
    * @param args
    */
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int a = sc.nextInt();
    int b = sc.nextInt();

    System.out.println(gcm(a,b));
    System.out.println(lcm(a,b));
    }

    private static int lcm(int a, int b) {
    return (a*b)/gcm(a,b);
    }

    private static int gcm(int a, int b) {
    if (b==0) return a;

    //reduce larger.

    if (b>a) return gcm(a, b%a);
    return gcm(b, a%b);
    }
    }


    'Basic' 카테고리의 다른 글

    2-1: maxofarr  (0) 2018.10.24
    1-8: 빙고  (0) 2018.10.24
    1-6: 영팔이  (0) 2018.10.24
    1-5: 자리배정  (0) 2018.10.24
    1-4: 테트리미노  (0) 2018.10.24
Designed by Tistory.