Computer Science/Algorithm Problem

백준] 3474 - 교수가 된 현우(ACM-ICPC Regionals)

TwinParadox 2018. 5. 8. 22:54
728x90

시간 제한 : 1초

메모리 제한 : 128MB




입력

첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1 <= N <= 1000000000).




출력

각 줄마다 N!의 오른쪽 끝에 있는 0의 개수를 출력한다.




소스코드

#include <iostream>
using namespace std;
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n, t;
	cin >> t;
	while (t--)
	{
		long long sum = 0;
		cin >> n;
		for (int i = 5; i <= n; i *= 5)
		{
			sum += n / i;
		}
		cout << sum << '\n';
	}
}




Tip

팩토리얼을 구하는 과정에서 곱하는 숫자의 5의 개수를 파악하기만 하면 0의 개수를 파악할 수 있다.



728x90