#include<iostream>
using namespace std;
int main()
{
int n,k,t,i,c;
cin >> t;
while(t--)
{
cin >> n;
k=0;
while(n!=0)
{
k+=n/5;
n/=5;
}
cout << k << endl;
}
return 0;
}
/*
定理1:(算数基本定理) 任一整数n>1都可以表示成素数的成绩,且在不考虑成绩的情况下
该表达式唯一的。即
n=p1*p2.....ps p1<=p2<=p3....<=ps
其中p1...ps是素数,并且若
n=q1*q2....qt q1<=q2<=q3....<=qt
其中q1...qt是素数,则s=t,pi=qi,1<=i<=s
用数学归纳法证明:
设n为任意大于1的整数
(1)n=2 等式成立
(2)假设对于小于n的整数成立
(3)若n为素数则成立 若n不为素数怎存在n=b*c 1<b<n,1<c<n
根据归纳法假设b=p1*p2....pu,c=P(u+1)*P(u+2)...pv
则n=b*c=p1*p2.。。。。pu*p(u+1)....pv;
调整一下顺序就是n=p1*p2....ps;
再证明一下唯一性:
p1.....ps=q1.....qt
所以p1|(q1*q2...qt);(p1整除于q1....qt)
又因为qi都为素数 则p1必定等于其中的一个素数
同理可得pi在q中能找到相同的有因为等式两端都等于n
所以p与q的个数相等所以p序列与q序列唯一
所以:n=p1的X1次方+p2的x2的次方+。。。。Ps的x次方
N的阶乘可以分解为: 2的X次方,3的Y次方,5的Z次方,.....的积
只有2*5等于10 含有0 又因为5的个数比2的个数少就取决于5的个数
z = N/5 + N /(5*5) + N/(5*5*5).....z表示n的阶乘含有5的个数
公式中 N/5表示不大于N的数中能被5整除的数都贡献一个5,
N/(5*5)表示不大于N的数中能被25整除的数再都贡献一个5.......
*/
using namespace std;
int main()
{
int n,k,t,i,c;
cin >> t;
while(t--)
{
cin >> n;
k=0;
while(n!=0)
{
k+=n/5;
n/=5;
}
cout << k << endl;
}
return 0;
}
/*
定理1:(算数基本定理) 任一整数n>1都可以表示成素数的成绩,且在不考虑成绩的情况下
该表达式唯一的。即
n=p1*p2.....ps p1<=p2<=p3....<=ps
其中p1...ps是素数,并且若
n=q1*q2....qt q1<=q2<=q3....<=qt
其中q1...qt是素数,则s=t,pi=qi,1<=i<=s
用数学归纳法证明:
设n为任意大于1的整数
(1)n=2 等式成立
(2)假设对于小于n的整数成立
(3)若n为素数则成立 若n不为素数怎存在n=b*c 1<b<n,1<c<n
根据归纳法假设b=p1*p2....pu,c=P(u+1)*P(u+2)...pv
则n=b*c=p1*p2.。。。。pu*p(u+1)....pv;
调整一下顺序就是n=p1*p2....ps;
再证明一下唯一性:
p1.....ps=q1.....qt
所以p1|(q1*q2...qt);(p1整除于q1....qt)
又因为qi都为素数 则p1必定等于其中的一个素数
同理可得pi在q中能找到相同的有因为等式两端都等于n
所以p与q的个数相等所以p序列与q序列唯一
所以:n=p1的X1次方+p2的x2的次方+。。。。Ps的x次方
N的阶乘可以分解为: 2的X次方,3的Y次方,5的Z次方,.....的积
只有2*5等于10 含有0 又因为5的个数比2的个数少就取决于5的个数
z = N/5 + N /(5*5) + N/(5*5*5).....z表示n的阶乘含有5的个数
公式中 N/5表示不大于N的数中能被5整除的数都贡献一个5,
N/(5*5)表示不大于N的数中能被25整除的数再都贡献一个5.......
*/