만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

순환소수

시간 제한1초메모리 제한1024 MB

요약
반복되는 숫자가 있는 순환소수 D가 주어지면, 그 값을 기약분수로 나타낸 분자와 분모를 출력합니다.
난이도

쉬움10점 중 3점

유형
문자열, 수학, 정수론
정답자
아직 제출이 없습니다

문제

Ivica는 소수를 좋아한다. 소수는 정수 부분, 소수점, 소수 부분으로 이루어진다. 그는 특히 정수 부분이 0이고, 소수 부분이 무한히 이어지며 그중 일부가 주기적으로 반복되는 소수를 좋아한다. 예를 들어 0.333...에서는 3이 무한히 반복되고, 0.252525...에서는 25가 반복되며, 0.57424242...에서는 42가 반복된다.

케임브리지의 한 학생이 이런 소수를 분수로 쓰는 방법을 설명한 논문을 썼다. D를 소수, x를 반복되지 않는 소수 자릿수, y를 반복되는 소수 자릿수(양의 정수)라고 하자. D=0.064333...이면 x=3, y=1이고, D=0.333...이면 x=0, y=1이다. 경우는 두 가지로 나뉜다.

경우 1: x=0일 때.

  1. D에 10y10^{y}을 곱한다.
  2. 양변에서 D를 뺀다.
  3. 오른쪽 식의 값이 분자가 되고, D 앞에 놓인 수가 분모가 된다.

경우 2: x>0일 때.

  1. D에 10x+y10^{x+y}을 곱한다.
  2. 원래 D에 10x10^{x}을 곱한다.
  3. 두 식의 왼쪽 변끼리, 오른쪽 변끼리 뺀다.
  4. 오른쪽 식의 값이 분자가 되고, D 앞에 놓인 수가 분모가 된다.

두 경우 모두 분수를 끝까지 약분해야 한다. 분자와 분모를 동시에 나누어떨어지게 하는 자연수가 없으면 완전히 약분된 것이다. 조건에 맞는 (x, y) 쌍이 여러 개라면 y가 가장 작은 쌍을 고른다.

입력

첫 줄에 실수 D(0 < D < 1)가 주어진다. 문제문의 소수이다. 반복되는 숫자 묶음은 정확히 세 번 나타난다. 또한 x+3y <= 15를 만족한다.

출력

끝까지 약분한 분수의 분자를 첫 줄에, 분모를 둘째 줄에 출력한다.

예제5

  1. 예제 1

    입력
    0.222
    
    예상 출력
    2
    9
    
  2. 예제 2

    입력
    0.252525
    
    예상 출력
    25
    99
    
  3. 예제 3

    입력
    0.123123123
    
    예상 출력
    41
    333
    
  4. 예제 4

    입력
    0.1222
    
    예상 출력
    11
    90
    
  5. 예제 5

    입력
    0.8161616
    
    예상 출력
    404
    495