n!=x*b^y,
当x为正整数时,最大的y就是n!末尾0的个数了,
把n,b分别拆成素因子相乘的形式:
例如,
n=5,b=16
n=5,b=2^4,
很明显,末尾0的个数为0
10进制时,n!=a*10^x
b进制时,n!=c*b^y
很明显,n!的位数就是最大的x+1
这里计算我用了log,精度设置为1e-9
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<map>
#include<cmath>
using namespace std;
const int inf=(1<<31)-1;
const double eps=1e-9;
vector<int>prime;
void maketable()
{
......
阅读全文