tianyunzqs
#include <iostream>
using namespace std;
//2014!里面0的个数.
int Giral(int x)
{
int i=0;
int j=0;
while(x)
{
int sum = x;
if(x%2==0)
{
while(x%2==0)
{
x/=2;
i++;
}
}
if(x%5==0)
{
while(x%5==0)
{
x/=5;
j++;
}
}
sum--;
x=sum;
}
return i>j?j:i;
}
int main()
{
cout<<Giral(2014)<<endl;
return 0;
}
1 到 2014 ,每个数都可以被分解为 k*2x5y,k,x,y 均为整数,不管 k 为何值相乘肯定不会产生 0,
2014 ! =k12X15y1 * k22X25y2*...*k20142X20145y2012=(k1*k 2 *...*k 2014)*( 2 )x1+x2+...+x2014(5)y 1+y2+...+y2014
1-1014 中
能提取出 54 的只有 2014/625=3.2 , 3 个
能提取出 53 的有 2014/125=16.1 ,有 16 个
能提取出 52 的有 2014/25=80.5 ,有 80 个
能提取出 51 的有 2014/5=402.8 ,有 402 个
能提取 51 不能提取 52 的有 402-80=322
能提取 52 不能提取 53 的有 80-16=64
能提取 53 不能提取 54 的有 16-3=13
故 y1+y2…+y1024=322+64*2+13*3+3*4=501