#P1079. Orange的阶乘

    ID: 81 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>普及+/提高暴力枚举数学模拟快速幂

Orange的阶乘

Orange的阶乘

题目描述

我们都知道,在组合数学中,阶乘这一运算起到了非常关键的作用,其定义如下:

n !=i=1n(i)n\ ! = \prod_{i=1}^n (i)

Orange学习完阶乘之后,对阶乘非常感兴趣,同时,他定义了一个自己的阶乘符号 ?,其定义具体如下:

n?=i=1n(i !)n? = \prod_{i=1}^n {(i\ !)}

Orange知道这个数一定会很大,而且末尾一定会有一大堆数字 00 ,因此他想请你帮他计算出n?n? 末尾去掉尾缀 00 之后的后 kk 个数字是多少?

tips: 题面中的 $\prod_{i=1}^n f(i) = f(1) \times f(2) \times ... \times f(n)$,即表示将 f(i)f(i) 连乘起来。

输入格式

输入共包含 T+1(1T105)T + 1(1\leq T \leq 10^5) 行,第一行为一个整数 TT,表示Orange的询问次数,后面的每一行包含两个整数 n(1n5×106)n(1 \leq n \leq 5 \times 10^6)k(1k<9)k(1\leq k < 9),均为上述字母含义。

输出格式

你需要输出 TT 行,每行一个整数,代表Orange每次提问的回答,如果答案不足 kk 位,请使用前导零补齐至 kk

样例 #1

样例输入 #1

3
1 4
5 2
114514 4

样例输出 #1

0001
56
7248

提示

#样例解释2

n=5k=2n = 5, k = 2 时,$n? = 1! \times 2! \times 3! \times 4! \times 5! = 1 \times 2 \times 6 \times 24 \times 120 = 34560$。其去掉尾缀00之后为34563456,后 22 位为 5656