아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

PERIOD

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

요약
반복 마디가 세 번 나타나는 소수 문자열이 주어질 때, 가장 작은 반복 마디를 기준으로 그 값을 완전히 약분한 분수를 출력한다.
난이도

보통10점 중 4점

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

문제

Ivica je ljubitelj decimalnih brojeva. To su brojevi koji imaju cijeli dio, decimalnu točku i decimalni dio (decimale). Posebno voli one u kojima je cijeli dio nula, a koji imaju beskonačno mnogo decimala od kojih se neke periodički ponavljaju. Npr. u broju 0.333... beskonačno puta se ponavlja decimala 3, u broju 0.252525... decimale 25, a u broju 0.57424242... decimale 42). Nedavno je pronašao matematički članak jednog našeg studenta s Cambridge-a u kojem je objašnjeno kako se takvi decimalni brojevi mogu zapisati u obliku razlomka. Evo i kako.

Označimo s D decimalni broj, s x broj decimala koje se ne ponavljaju te s y pozitivan broj decimala koje se ponavljaju. Npr, za D=0.064333.. vrijedi da je x=3 i y=1, a za D=0.333.. vrijedi da je x=0 i y=1. Promotrimo dva slučaja.

U prvom slučaju vrijedi da je x=0. Tada:

  1. prvo pomnožimo broj D s 10y;
  2. oduzmimo od lijeve i desne strane broj D;
  3. brojnik traženog razlomka je broj koji piše na desnoj strani, a nazivnik je broj koji piše uz D;

Primjer 1.

D = 0.333... (x=0, y=1)

10 • D = 3.333... // pomnožimo lijevu i desnu stranu s 101=10

10 • D – D = 3.333... – D // oduzmimo D od lijeve i desne strane

9 • D = 3

D = 3/9 = 1/3 (brojnik = 1, nazivnik =3)

U drugom slučaju vrijedi da je x>0. Tada:

  1. prvo pomnožimo broj D s 10(x+y);
  2. zatim pomnožimo orginalni broj D i s 10x;
  3. 3. oduzmimo lijeve strane tako dobivenih dvaju izraza te njihove desne strane;
  4. brojnik traženog razlomka je broj koji piše na desnoj strani, a nazivnik je broj koji piše uz D;

Primjer 2.

D = 0.01838383... (x=2, y=2)

1) 10000 • D = 183.838383... // pomnožimo lijevu i desnu stranu s 104

2) 100 • D = 1.838383... // pomnožimo orginalni broj D i s 102

10000 • D - 100 • D = 183.838383... - 1.838383...//oduzmimo lijeve i desne strane izraza 1) i 2) 9900 • D = 182

D = 182/9900 = 91/4950 (brojnik = 91, nazivnik =4950)

U oba opisana slučaja razlomak mora biti skraćen do kraja. Razlomak je skraćen do kraja ako ne postoji prirodan broj kojim se može bez ostatka podijeliti i brojnik i nazivnik.

U slučaju da za zadani broj postoji više različitih (x,y) opisanih u gornjem tekstu tada se bira onaj par s minimalnim y.

Napiši program koji će na osnovu zadanog decimalnog broja ispisati do kraja skraćen razlomak koji predstavlja zapis zadanog decimalnog broja.

입력

U prvom retku nalazi se realni broj D (0 < D < 1), decimalni broj iz teksta zadatka. Grupa decimala koje se ponavljaju, pojavit će se točno tri puta. Dodatno će vrijediti x+3y ≤ 15.

출력

U prvi redak izlaza treba ispisati brojnik, a u drugi redak nazivnik razlomka iz teksta zadatka.

예제6

  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
    
  6. 예제 6

    입력
    0.000555
    
    예상 출력
    1
    1800