# BOJ01676 팩토리얼 0의 개수

https://www.acmicpc.net/problem/1676 (opens new window)

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구한다.

# 2 x 5 = 10

맨 뒷자리가 0이 나오기 위해서는 2와 5의 곱인 10이 필요하다.

...
5! = 120 = 2^3 x 3 x 5
...
10! = 3,628,800 = 2^8 x 3^4 x 5^2 x 7
...
25! = 2^22 x 3^10 x 5^6 x 7^3 x 11^3 x 13 x 17 x 19 x 23
...

25의 경우에는 5 x 5 만큼 증가하기 때문에 100 만큼 증가한다. 125도 마찬가지다. 결국 0의 개수는 n!에서 n을 5로 나누었을 때 몫을 누적하여 구하면 된다.

# 제출 코드

아래는 최종 제출 코드이다.

import java.util.Scanner;

public class BOJ1676 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int num = scanner.nextInt();

        int count = 0;
        while (num >= 5) {
            count += num / 5;
            num /= 5;
        }

        System.out.println(count);
    }
}

# References

[백준] 1676번 : 팩토리얼 0의 개수 - JAVA [자바] (opens new window)

#BOJ #수학
last updated: 10/30/2021, 6:36:04 PM