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

#문제

백준 1676번 팩토리얼 0의 개수

#풀이

#include <iostream>

using namespace std;

int main()
{
	ios::sync_with_stdio(false); cin.tie(NULL);

	int N;
	cin >> N;

	int cnt = N / 5 + N / 25 + N / 125;

	cout << cnt;

	return 0;
}

#정리

입력받은 수의 팩토리얼을 쭉 나열하고, 맨 뒤에부터 0의 개수를 세는 문제. 입력 받는 가장 큰 수인 N을 팩토리얼 연산하면 굉장히 큰 수가 나오기 때문에 계산하기 어렵다. 하지만 0의 개수를 세는 것은 문제없다. N이 5로 몇 번 나누어 떨어지는지에 따라 결정되기 때문이다. 5의 배수 중 N의 최대값 보다 작은 수, 125까지의 나눈 수를 더한 값을 출력하여 해결.




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • [백준] 1037번 최소공배수 / C++
  • [백준] 2563번 색종이 / C++
  • [백준] 1475번 방 번호 / C++
  • [백준] 1269번 대칭 차집합 / C++
  • [백준] 11050번 이항 계수 1 / C++