[C] 1676번: 팩토리얼 0의 개수
[C] 1676번: 팩토리얼 0의 개수

문제
https://www.acmicpc.net/problem/1676
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
풀이
팩토리얼의 뒤에 붙는 0은 10 = 2 × 5 가 만들어질 때마다 하나씩 생깁니다.
팩토리얼에서는 2의 개수는 충분히 많고, 5의 개수가 부족하므로 5가 몇 개 들어 있는지만 세면 됩니다.
예를 들어
5는 5가 1개10도 5가 1개15도 5가 1개25는 이므로 5를 2개 제공
따라서 답은
를 모두 더한 값입니다.
코드
#include <stdio.h>
int main() { int n; int count = 0;
scanf("%d", &n);
while (n >= 5) { count += n / 5; n /= 5; }
printf("%d\n", count); return 0;}