반응형

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

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net

 

뒤에 0이란 숫자는 2 * 5로 인해 하나가 붙게 됩니다.

N!을 소인수 분해했을 때, 2의 개수와 5의 개수 중에 더 적은 개수가 0의 개수가 됩니다.

2의 개수가 더 많이 나올리는 없으니 5의 개수가 0의 개수입니다.

 

#include <cstdio>
int main() {
	int n, c = 0;
	scanf("%d", &n);
	for (int i = 2; i <= n; i++) {
		int ii = i;
		while (ii % 5 == 0) {
			ii /= 5;
			c++;
		}
	}
	printf("%d", c);
}
반응형

'Algorithm' 카테고리의 다른 글

백준 1922 : 네트워크 연결  (0) 2021.11.19
백준 2775 : 부녀회장이 될테야  (0) 2021.11.19
백준 6416 : 트리인가?  (0) 2021.11.19
백준 1108 : 검색 엔진  (0) 2021.11.19
백준 4305 : 성격 진단 테스트  (0) 2021.11.19

+ Recent posts