28. N!에서 0의 개수

zzzzwso·2023년 9월 4일
0

문제설명

자연수 N이 입력되면 N! 값에서 일의 자리부터 연속적으로 ‘0’이 몇 개 있는지 구하는 프로그램을 작성하세요.
만약 5! = 5 ×4 × 3 × 2 ×1 = 120으로 일의자리부터 연속적된 ‘0’의 개수는 1입니다.
만약 12! = 479001600으로 일의자리부터 연속적된 ‘0’의 개수는 2입니다.

입력설명

첫 줄에 자연수 N(10<=N<=1,000)이 입력된다.

출력설명

일의 자리부터 연속된 0의 개수를 출력합니다.

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	int n, tmp, j, cnt1 = 0, cnt2 = 0;
	cin >> n;
	for (int i = 2; i <= n; i++)
	{
		tmp = i;
		j = 2;
		while (i)
		{
			if (tmp % j == 0)
			{
				if (j == 2) cnt1++;
				else if (j == 5) cnt2++;
				tmp = tmp / j;
			}
			else j++;
			if (tmp == 1) break;
		}
	}
	if (cnt1 < cnt2)
		cout << cnt1;
	else
		cout << cnt2;
}
profile
HI there

0개의 댓글