[BJ / 1676] 팩토리얼 0의 개수

Lainlnya·2023년 4월 6일
0

BaekJoon

목록 보기
26/37

문제

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

입력

첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

출력

첫째 줄에 구한 0의 개수를 출력한다.

예시

풀이

팩토리얼을 구할 때 0의 개수를 구하는 방법은 2의 배수와 5의 배수의 개수를 구하면 되는데, 2의 배수의 개수가 5의 배수의 개수보다 항상 더 많기 때문에 5의 배수의 개수만 더해주면 된다.
예를 들면, 5의 경우 앞에 2나 4와 같은 짝수가 있으니 0이 하나 생기고,
25의 경우 5 * 5로 앞에 짝수는 존재하니 0이 두개 생기는 것과 같다.

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';
rl.on('line', (line) => {
  input = line;
});

rl.on('close', () => {
  console.log(solution(parseInt(input)));
});

function solution(num) {
  let answer = 0;
  if (num === 0) return answer;

  for (let i = 1; i <= num; i++) {
    if (i % 5 === 0) answer++;
    if (i % 25 === 0) answer++;
    if (i % 125 === 0) answer++;
  }
  return answer;
}
profile
Growing up

0개의 댓글