본문 바로가기
알고리즘 문제풀이

[백준 2609] 알고리즘 27일차 : 최대공약수와 최소공배수

by SiO2whocode 2020. 7. 21.
728x90

https://www.acmicpc.net/problem/2609

 

2609번: 최대공약수와 최소공배수

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

www.acmicpc.net

수학3 C++
리터럴리 두 정수의 최대공약수랑 최소공배수를 출력하는 문제다.
최대공약수는 둘 중 작은 수부터 하나씩 감소시키면서 검사하고(이렇게 안하고 좀 더 효율적으로 할 수 있겠지만 통과는 된다)
최소공배수는 둘 중 작은 수부터 그의 배수를 검사한다. 끝

오늘 문제는 폰코딩했다. ios문자랑 아스키코드가 안맞는건지 “랑 - - 이 코드로 인식이 안돼서 계속 컴파일 에러가 떴었다..
이전에 풀었던 코드에서 가져와서 고쳐서 냈는데 이번엔 걍 틀렸습니다.;
해결못하고 집에와서 돌려보니까 최소공배수 출력을 min*n을 해야되는데 n만 한 것..
어쨌든 폰코딩을 해봤다..ㅋㅋㅋ 아이폰 메모장에 #include 끄적ㅋㅋㅋㅋㅋ

소스코드
아 폰으로는 소스코드 못올리네

#include <iostream>
#include <cmath>
using namespace std;

int main(){
    int n1, n2;
    cin >> n1 >> n2;
    
    int min = min(n1,n2);
    for(int i =min; i >= 1; i--){
        if(n1 % i == 0 && n2 % i == 0){
            cout << i << "\n";
            break;
        }
    }

    for(int n = 1; n <= max(n1,n2); n++){
        if(min*n % n1 == 0 && min*n % n2 == 0){
            cout << min*n ;
            break;
        }
    }
   
    return 0;
}
728x90