U335713 小数变分数

题目背景

在卡西欧计算器中,有一个神奇的功能。我们有一个循环小数,如: ```cpp 5.3333333333 0.1866666666 2.4545454545 ``` 等等。我想将它化成分数的形式,方便运算,那我该怎么做呢?很简单,在卡西欧计算器中输入这个循环小数(多循环几次),他就会自动帮你转化为(假)分数形式。如: $\Large{\frac{16}{3}}$ $\Large{\frac{14}{75}}$ $\Large{\frac{27}{11}}$ 。

题目描述

下面我们尝试使用程序实现这种功能。 在一个小数的小数部分中,我们认为“循环部分”指的是**长度最短的**、**连续重复出现的**、且**为小数部分后缀的**数串(如`0.141414141414` 中,我们认为循环部分是 `14` 而不是 `1414` ),且必须满足**连续的循环部分连接而成的数串也为小数部分的后缀**(如 `0.3333333333114` 中, `3` 并不是它的循环部分。 `0.3333331919191919` 中, `19` 是它的循环部分)。 输入一个小数,若其没有循环部分或循环部分的循环次数小于 $5$ ,输出原小数。否则输出转换后的(假)分数。注意:输出的分数必须是**最简形式**,即不能再约分。 假分数指的是分母大于等于分子的分数。

输入格式

一行一个小数,以 $m.n$ 的形式出现。 其中 $0\le m

输出格式

若输入的小数没有循环部分或循环部分的循环次数小于 $5$ ,输出一行原小数。 否则输出两行,第一行为转换成的分数的分子,第二行为转换成的分数的分母。

说明/提示

十年 $OI$ 一场空,不开 $long$ $long$ 见祖宗