[210603][백준/BOJ] 1850번 최대공약수
문제
입출력
풀이
A가 111이고 B가 1111일때 최대 공약수는 1이며
A가 1111이고 B가 111111일떄 최대 공약수는 111이다.
따라서 유클리드 호제법으로 최대공약수를 구하고 최대공약수만큼 1을 출력해주면 된다.
입력되는 수가 2^63보다 작은 자연수이므로 int형 대신에 long long형을 사용한다.
코드
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll a, ll b)
{
ll r;
while (b != 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
ll a, b;
cin >> a >> b;
for (int i = 0; i < gcd(a, b); ++i)
cout << '1';
}
Author And Source
이 문제에 관하여([210603][백준/BOJ] 1850번 최대공약수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kwkim95/210601백준BOJ-1850번-최대공약수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)