[CSP-S模拟测试]:数字(数学+高精度)

题目描述

很简单,给出正整数$n$,求出$n!$在十进制表示下的从最末非零位开始的总共$k$位。


输入格式

第一行一个正整数$T$,表示有$T$组数据
接下来$T$行,每行两个正整数$n$和$k$。


输出格式

每组测试数据,按照高位到低位的顺序输出,共$k$位,包含前导$0$(若高位不足,用前导$0$补足)。


样例

样例输入:

3
1 1
5 1
10 2

样例输出:

1
2
88


数据范围与提示

对于$20\%$的数据,$n\leqslant 100,k=1,2,3$分别占$10\%,5\%,5\%$
对于另外$30\%$的数据,$n\leqslant 10^7,k=1,2,3$分别占$10\%,10\%,10\%$
对于另外$30\%$的数据,$n\leqslant 10^{18},k=1,2,3$分别占$10\%,10\%,10\%$
对于另外$20\%$的数据,$n\leqslant 10^{100},k=1,2,3$分别占$5\%,5\%,10\%$
$T\leqslant 100$


题解

一道$200$多行的数学题……

讲一下推到过程(其实主要是学长的……)

为方便,不妨做如下定义:

$a\perp b$表示$a$与$b$互质,即$gcd(a,b)=1$。

$a|b$表示$a$可以整除$b$,即$gcd(a,b)=a$。

$a\require{cancel}\bcancel{-}b$表示$a$无法整除$b$,即$gcd(a,b)\neq a$。

$a\%b$表示满足$a\equiv(\mod b)$的最小自然数$x$。

设$Fp(k,x)$为$x$中因子$k$的最大幂次,即满足$x=rk^n(n,r\in N)$的最大$n$。

设$Ext(k,x)$为$x$除去所有因子$k$后的值,即$Ext(k,x)=\frac{x}{k^{Fp(k,x)}}$。

定义完了之后,我们接着看着道题

未完……

猜你喜欢

转载自www.cnblogs.com/wzc521/p/11626918.html