乘积的零的产生来源于所有被乘数的因子2和5相乘,分别统计所有被乘数的因子2和5的个数,取两者小的值就是答案
#include<iostream>
using namespace std;
struct st
{
int a2,a5;
}st;
int main()
{
int data[]={5650,4542,3554,473,946,4114,3871,9073,90,4329, 2758,7949,6113,5659,5245,7432,3051,4434,6704,3594, 9937,1173,6866,3397,4759,7557,3070,2287,1453,9899, 1486,5722,3135,1170,4014,5510,5120,729,2880,9019, 2049,698,4582,4346,4427,646,9742,7340,1230,7683, 5693,7015,6887,7381,4172,4341,2909,2027,7355,5649, 6701,6645,1671,5978,2704,9926,295,3125,3878,6785, 2066,4247,4800,1578,6652,4616,1113,6205,3264,2915, 3966,5291,2904,1285,2193,1428,2265,8730,9436,7074, 689,5510,8243,6114,337,4096,8199,7313,3685,211
};
int len=sizeof(data)/sizeof(int);
st.a2=0;st.a5=0;
for(int i=0;i<len;i++)
{
while(data[i]%2==0)
{
st.a2++;
data[i]/=2;
}
while(data[i]%5==0)
{
st.a5++;
data[i]/=5;
}
}
int minn=0;
if(st.a2>=st.a5)minn=st.a5;
else minn=st.a2;
cout<<minn<<endl;
return 0;
}