一對5、2產生一個0
利用下式進行分解
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<vector>
#include<climits>
#include<string>
#include<cstdlib>
#include<ctime>
#define MOD 1000000007
#define LL long long
using namespace std;
int t,i,a2[1000005],a5[1000005],m,n,d2,d5,d,x;
int main()
{
scanf("%d",&t);
for(i=2;i<=1000005;i++)
{
x=i;
while(x%2==0)
{
x/=2;
a2[i]++;
}
while(x%5==0)
{
x/=5;
a5[i]++;
}
a2[i]+=a2[i-1];
a5[i]+=a5[i-1];
}
while(t--)
{
scanf("%d%d",&n,&m);
d2=a2[n]-a2[m]-a2[n-m];
d5=a5[n]-a5[m]-a5[n-m];
d=min(d2,d5);
printf("%d\n",d);
}
return 0;
}