A. k-rounding
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
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 10and 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.
Examples
input
375 4
output
30000
input
10000 1
output
10000
input
38101 0
output
38101
input
123456789 8
output
12345678900000000
计算出n*x= y* 1ek
结果一定包含k个0 ,一定可以取余n 那么答案最小值就是n*1ek/gcd(n,1ek);
从宏观角度 列出表达式 观察计算结果
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <bitset>
#include <algorithm>
#include <climits>
using namespace std;
const int N = 1000000;
typedef long long LL;
LL d[20];
vector<LL>p;
int main()
{
d[0]=1;
for(int i=1; i<=18; i++) d[i]=d[i-1]*10;
LL n, k;
scanf("%I64d %I64d", &n, &k);
printf("%I64d\n",n*d[k]/__gcd(n,d[k]));
return 0;
}