본문 바로가기
알고리즘/백준

[백준/C,C++] 1850번: 최대공약수

by 이민훈 2021. 4. 20.

www.acmicpc.net/problem/1850

 

1850번: 최대공약수

모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A

www.acmicpc.net

풀이

A, B 길이의 최대 공약수만큼 1을 출력해주면 됩니다.

 

#include<iostream>

using namespace std;

using LL = long long;

LL gcd(LL a, LL b)
{
    return b ? gcd(b, a % b) : a;
}

int main(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    LL a, b; cin >> a >> b;

    cout << string(gcd(a, b), '1');

    return 0;
}

반례

Input

4 10

Output

11

 

Input

63 72

Output

111111111

 

Input

100 201

Output

1

'알고리즘 > 백준' 카테고리의 다른 글

[백준/C,C++] 9465번: 스티커  (0) 2021.04.20
[백준/C,C++] 10799번: 쇠막대기  (0) 2021.04.20
[백준/C,C++] 5585번: 거스름돈  (0) 2021.04.20
[백준/C,C++] 10610번: 30  (0) 2021.04.20
[백준/C,C++] 2875번: 대회 or 인턴  (0) 2021.04.20

댓글