// Efficient Method : Time Complexity : Θ(logn), Auxiliary Space: O(1) import java.io.*; import java.util.*; public class Main { static int countTrailingZeros(int n) { int res = 0; for(int i=5; i<=n; i=i*5) { res = res + (n / i); } return res; } public static void main (String[] args) { int number = 251; System.out.println(countTrailingZeros(number)); } } // Naive Method : Time Complexity : Θ(n), Auxiliary Space: O(1) // Overflow for n=20, as factorial value will be of around 19 digits static int countTrailingZeros(int n) { int fact = 1; for(int i=2; i<=n; i++) { fact = fact*i; } int res = 0; while(fact%10 == 0) { res++; fact = fact/10; } return res; }