LeetCode in Kotlin

172. Factorial Trailing Zeroes

Medium

Given an integer n, return the number of trailing zeroes in n!.

Note that n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1.

Example 1:

Input: n = 3

Output: 0

Explanation: 3! = 6, no trailing zero.

Example 2:

Input: n = 5

Output: 1

Explanation: 5! = 120, one trailing zero.

Example 3:

Input: n = 0

Output: 0

Constraints:

Follow up: Could you write a solution that works in logarithmic time complexity?

Solution

class Solution {
    fun trailingZeroes(n: Int): Int {
        var base = 5
        var count = 0
        while (n >= base) {
            count += n / base
            base = base * 5
        }
        return count
    }
}