Codeforces Round #434 (Div. 2)
阿新 • • 發佈:2018-12-24
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 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.
Examples
input
375 4
output
30000
input
10000 1
output
10000
input
38101 0
output
38101
input
123456789 8
output
12345678900000000
題意:
有n,k兩個數,求對於 n 的 k-rounding 數,k-rounding 數就是一個有k個後置零的可以被n整除的最小數
題解:
就是求lcm(n,10^k) = n * 10 ^ k / gcd(n,10^k)
#include<stdio.h> #define LL long long LL n,k,kk = 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++) kk *= 10; printf("%lld", n * kk / gcd(n,kk)); return 0; }