#include

using namespace std;

int main()

{

```
int i;
cin>>i;
while(i--)
{
int a,s=1;
cin>>a;
while(--a)
s=s*(a+1);
int b=0;
while(s%10==0)
{
b+=1;
s/=10;
}
cout<<b<<endl;
}
return 0;
```

}

#include

using namespace std;

int main()

{

```
int i;
cin>>i;
while(i--)
{
int a,s=1;
cin>>a;
while(--a)
s=s*(a+1);
int b=0;
while(s%10==0)
{
b+=1;
s/=10;
}
cout<<b<<endl;
}
return 0;
```

}

Hi Naveen,

You don’t need to calculate the whole factorial in order to find the no. of trailing zeros. Just doing floor division with the input by 5 continuously till the input becomes 0, will fetch you the answer.

PS: For large inputs, use long.

```
#include <iostream>
using namespace std;
int main()
{
int i;
cin>>i;
for(int j=0; j<i; j++)
{
long a;
int zeros=0;
cin >> a;
while(a!=0)
{
zeros=zeros+(a/5);
a=a/5;
}
cout<<zeros<<endl;
}
return 0;
}
```

Regards, Aadarsh.

THANKS AADARSH!!

No problem Naveen!! Pls close this post by making it the accepted answer.

Thanks, Aadarsh…