Berlandia发生了通货膨胀,所以商店需要改变商品的价格。给出了良好n的当前价格。允许将商品价格提高k倍,其中1≤k≤m,k为整数。输出最全面的商品新价格。也就是说,在末尾具有最大数目的零的一个。如果有几种可能的变体,则输出新价格最大的变体。如果不可能得到一个更圆的价格,则输出n∙m(即最大可能价格)。
每个2*5都能产生1个0,若n*k的末尾0最多,则2*5的个数最多,n不断除以5,m不断除以2,或者n不断除以2,m不断除以5,得到2*5的最大个数。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int INF=0x3f3f3f3f;
typedef long long LL;
int main()
{
int T;
cin>>T;
while(T--)
{
LL n,m;
cin>>n>>m;
LL ans=1;
while(n%10==0) n/=10,ans*=10;
while(n%5==0&&m>=2)
{
n/=5;
m/=2;
ans*=10;
}
while(n%2==0&&m>=5)
{
n/=2;
m/=5;
ans*=10;
}
while(m>=10) m/=10,ans*=10;
cout<<ans*n*m<<endl;
}
return 0;
}