题意
For a given positive integer n denote its k-rounding as the minimum positive integer x, such that x ends with k or more zeros in base 10 and is divisible by n.
For example, 4-rounding of 375 is 375·80 = 30000. 30000 is the minimum integer such that it ends with 4 or more zeros and is divisible by 375.
Write a program that will perform the k-rounding of n.
Input
The only line contains two integers n and k (1 ≤ n ≤ 109, 0 ≤ k ≤ 8).
Output
Print the k-rounding of n.
思路
就是找到有k个后置0的最小的那个可以整除n的数,所以就是要找到 n和1ek的最小公倍数。
然后就是运用到核心公式gcd(b,a%b)
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,k,x = 1;
ll gcd(ll a,ll b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
scanf("%lld %lld",&n,&k);
for(int i=1;i<=k;i++)
x *= 10;
printf("%lld", n*x/gcd(n,x));
return 0;
}