PS/Baekjoon Online Judge

[백준 1676] 팩토리얼 0의 개수 [C]

kimyoungrok 2021. 8. 9. 09:12

백준 - 1676


풀이

0의 개수는 2와 5의 곱의 쌍을 통해 알 수 있다. (2*5 = 10, 15 * 2 = 30)

하지만 팩토리얼이기 때문에 2의 배수는 무수히 많으므로, 5의 제곱수의 개수만 알아내면 된다.

N은 최대 500이하 이므로, 125, 25, 5로 나누어 떨어지는 경우만 해당한다.


소스코드

#include <stdio.h>
int main(){
    int N, cnt = 0;
    scanf("%d",&N);
    for(int i = 1 ; i <= N; i++) {
        if(i%125 == 0) cnt += 3;
        else if(i%25 == 0) cnt += 2;
        else if(i%5 == 0) cnt += 1;
    }
    printf("%d", cnt);
}

출처

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net