#CF3794. 抹去零头

抹去零头

题目描述

森林发生了通货膨胀,商店需要改变商品的价格。

给定商品 nn 的当前价格。可以将商品的价格增加到 kk 倍,其中 1km1≤k≤mkk 是整数。输出具有最多的后导零的新价格。

  • 数字 481000 比数字 1000010 后导零更多,因为481000 末尾有三个零,而 1000010 仅有一个零。

如果具有最多后导零的答案不止一个,请输出价格最大的一个。

如果无法获得更多后导零的价格,请输出 nmn⋅m(即,最大可能的价格)。(本质上也是最多后导零前提下的最大值)

输入格式

输入的第一行包含一个整数 t(1t104)t(1≤t≤10^4)——测试用例的数量。

这一行包含两个整数:nnm(1n,m109)m(1≤n,m≤10^9)。其中 nn 是商品的旧价格,数字 mm 表示你可以将价格 nn 最多增加 mm 倍。

输出格式

对于每个测试用例,输出一个单独的行,该行包含形如 nk(1km)n⋅k(1≤k≤m) 的最圆整数。

如果存在多个可能的最圆整数,输出使新价格(值 nkn⋅k)最大的那个。

如果无法获得更加圆整的价格,则输出 nmn⋅m(即最大可能价格)。

测试样例

10
6 11
5 43
13 5
4 16
10050 12345
2 6
4 30
25 10
2 81
1 7
60
200
65
60
120600000
10
100
200
100
7

样例说明

在第一个测试用例中,n=6m=11n=6,m=11。我们无法得到以两个或更多零结尾的数字,因为我们需要将价格增加到 5050 倍,但 50>m=1150>m=11。因此最大的价格为 610=606⋅10=60

在第二个测试用例中,n=5m=43n=5,m=43。最大的价格倍数为 540=2005⋅40=200

在第三个测试用例中,n=13m=5n=13,m=5。所有可能的新价格都不会以 00 结尾,因此应输出 nm=65n⋅m=65

在第四个测试用例中,需要将价格增加到 1515 倍。

在第五个测试用例中,需要将价格增加 1200012000 倍。