:: ADVANCE ::

[BaekJoon][1850] 최대공약수 본문

Algorithm/math

[BaekJoon][1850] 최대공약수

KSJ14 2016. 5. 24. 21:42
반응형

BAEKJOON ONLINE JUDGE


1850 최대공약수


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



이 문제는 약간 함정이다.

입력받은 A와 B로 1로만 만들어진 수를 만든 다음 최대공약수를 구하려 했는데 수가 너무 커서 결과를 구할 수 없었다.

문제를 풀던 도중 규칙을 찾은 것이

결국 1의 개수의 최대공약수가 결과 수의 1의 개수라는 것이었다.


따라서 A와 B의 GCD를 구한 후 이 수만큼의 1을 출력하면 되는 문제


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
long long int gcd(long long int n, long long int m)
{
    if (m == 0)    return n;
    return gcd(m, n % m);
}
 
int main()
{
    long long int a, b;
 
    scanf("%lld %lld", &a, &b);
 
    for (int i = 1; i <= gcd(a, b); i++) {
        printf("1");
    }
    printf("\n");
 
    return 0;
}
cs


반응형

'Algorithm > math' 카테고리의 다른 글

[BaekJoon][6588] 골드바흐의 추측  (0) 2016.05.24
[BaekJoon][9613] GCD 합  (0) 2016.05.24
[수학][GCD LCM] 최대공약수와 최소공배수  (0) 2016.05.24
[수학][mod] % 나머지 연산자  (0) 2016.05.24
[dovelet][For] gcd_lcm  (0) 2015.01.18
Comments