n=int(input())
for i in range(n):
a=int(input())
b=5
c=0
while(a>b):
u=a//b
c+=u
b*=5
print(c)
Consider
1
25
Thank you:) now i got it.
Please help me, I’m getting TLE. I tried using scanf and printf instead of cin and cout but still it’s exceeding the limit.
#define MOD 1000000007
using namespace std;
long long fast_power(long long base, long long power) {
long long result = 1;
while(power > 0) {
if(power % 2 == 1) { // Can also use (power & 1) to make code even faster
result = (result*base) % MOD;
}
base = (base * base) % MOD;
power = power / 2; // Can also use power >>= 1; to make code even faster
}
return result;
}
int main() {
int t;
scanf("%d", &t);
long long n;
while(t--) {
scanf("%lld", &n);
long long power = 1;
long long sum = 0;
while(n > fast_power(5,power)) {
sum = sum + n / fast_power(5,power);
power++;
}
printf("%lld\n", sum);
}
return 0;
}