Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

hwooo

BOJ (C/C++) 1676번: 팩토리얼 0의 개수 본문

Study/Algorithm

BOJ (C/C++) 1676번: 팩토리얼 0의 개수

hwooo 2022. 10. 19. 03:41

https://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net


풀이

0의 개수 = 소인수분해 시 10의 개수 = 소인수분해 시 2와 5의 개수 중 작은 값 (곱해서 10이 나와야 하니까)


코드

#include <stdio.h>
int main() {
	int N, n;
	int cnt_2 = 0, cnt_5 = 0, cnt;
	scanf("%d", &N);
	for (int i = 2; i <= N; i++) {
		n = i;
		while (n % 2 == 0) {
			n /= 2;
			cnt_2++;
		}
		while (n % 5 == 0) {
			n /= 5;
			cnt_5++;
		}
	}
	cnt = cnt_2 > cnt_5 ? cnt_5 : cnt_2;
	printf("%d", cnt);
	return 0;
}