1676 : 팩토리얼 0의 개수

네르기·2021년 8월 21일
0

알고리즘

목록 보기
25/76

어떤 문제인가?

10의 배수의 개수를 찾는 문제.

문제에 숨겨진 것들

  1. NN이 주어졌을 때,
    log2N!>log5N!(N>1)\log_{2}{N!} > \log_{5}{N!} (N>1)

이런 조건 때문에 사실 5의 배수 개수만 구해도 충분하다.

내 풀이

#include <stdio.h>

int main() {
    int N,A1,A2,A3;
    scanf("%d",&N);
    A1=N/125; A2=N/25-A1; A3=N/5-A1-A2;
    printf("%d",3*A1+2*A2+A3);
}

125의 배수에 대해서는 3을, 25에는 2를, 5에는 1을 곱했다. 그 이유는 5n5^n꼴 때문이다.

다른 사람들의 풀이

그러나 내 풀이가 가장 짧은 풀이는 아니다.

main(n){scanf("%d",&n);printf("%d",n/5+n/25+n/125);}

dnjsdnd36님의 풀이
-> https://www.acmicpc.net/source/56193

매우 간결하다. 개수만 파악하면 되니, 5의 몇 제곱꼴이었는지 확인하고 곱할 필요도 없이 다 더하면 정답이 된다.

profile
프로그래머와 애니메이터가 되고파

0개의 댓글

관련 채용 정보