2와 5를 곱하면 10이 되니 두 수의 개수 중 최솟값이 정답으로 생각해서 다음과 같이 코드를 짰다. 하지만 5의 개수가 2보다 현저히 낮기 때문에 5의 경우만 생각해도 되는 문제. 시간이 넉넉해서 통과했으니 상관없다!
#include <iostream>
using namespace std;
int main()
{
cin.tie(NULL);
cout.tie(NULL);
ios::sync_with_stdio(false);
int N;
cin >> N;
int cnt2 = 0;
int cnt5 = 0;
for (int i = 2; i <= N; i++)
{
int tmp = i;
while (tmp % 2 == 0)
{
tmp /= 2;
cnt2 += 1;
}
tmp = i;
while (tmp % 5 == 0)
{
tmp /= 5;
cnt5 += 1;
}
}
cout << min(cnt2, cnt5);
}