最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 有限小数

    正文概述 陈老师   2026-01-20 15:14:40  

    有限小数

    题目描述

    给定两个互质正整数 a,ba, b,你需要求两个非负整数 c,dc, d,满足以下两个条件:

    • ab+cd\frac{a}{b}+\frac{c}{d} 为十进制下的整数或有限小数。
    • 1d1091\le d \le {{ 10^9 }}

    在所有满足条件的非负整数对 (c,d)(c,d) 中,请求出 cc 最小的一对。

    一个有理数 xx 是十进制下的有限小数,当且仅当将 xx 在十进制下以小数形式写出后,小数点后的位数是有限的,即存在正整数 kk,整数 pp 和整数数组 (q1,q2,,qk)(q_1,q_2,\dots,q_k) 满足 0qi90\le q_i \le 9,使得 x=p+i=1kqi10ix=p+\sum\limits_{i=1}^{k}q_i\cdot 10^{-i}

    输入格式

    第一行包含一个正整数T(1T1041\leq T\leq 10^4),表示数据组数。

    每组数据包含一行两个正整数a,ba,b (1ab1061\leq a\leq b\leq 10^6),含义如题目描述所示。保证gcd(a,b)=1gcd(a,b)=1

    输出格式

    对于每组数据,输出一行两个非负整数 cdc,d。如果有多组正确答案,输出任意一组即可。

    样例

    4
    1 2
    2 3
    3 7
    19 79
    
    0 1
    1 3
    1 14
    3 316
    

    提示

    【样例11 解释】

    对于第一组数据,由于12=0.5\frac{1}{2}=0.5是有限小数,因此输出(c,d)(c,d)满足c=0c=01d1091\leq d\leq 10^{9} 即可。

    对于第二组数据, 23+13=1\frac{2}{3}+\frac{1}{3}=1 是整数,且 23=0.666\frac{2}{3}=0.666\ldots 不是有限小数,因此 c=1c=1 是最小可能值。

    对于第三组数据, 37+114=12=0.5\frac{3}{7}+\frac{1}{14}=\frac{1}{2}=0.5 是有限小数。

    对于第四组数据, 1979+3316=14=0.25\frac{19}{79}+\frac{3}{316}=\frac{1}{4}=0.25 是有限小数,且可以证明不存在 0c20\leq c\leq 2,1d1091\leq d\leq 10^{9} 使得 1979+cd\frac{19}{79}+\frac{c}{d} 是有限小数。

    数据范围

    30%30\% 的数据,T=1T=1

    100%100\% 的数据, 1T104,1ab1061 \le T \le 10^4,1\le a \le b \le 10^6

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 有限小数