반응형
https://www.acmicpc.net/problem/9693
문제 해결 알고리즘
1~N까지 모든 수를 2와 5로 나눠보면서 N!에 있는 2와 5의 개수를 찾고 둘 중 작은 수를 출력해준다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int main(){
int cnt = 1;
while(true){
int two_cnt = 0, five_cnt = 0;
int N; cin >> N;
if(N == 0) break;
for(int i=1;i<=N;i++){
int n = i;
while(true){
if(n % 2 != 0) break;
n/=2;
two_cnt++;
}
n = i;
while(true){
if(n % 5 != 0) break;
n/=5;
five_cnt++;
}
}
cout << "Case #" << cnt << ": " << min(five_cnt, two_cnt) << '\n';
cnt++;
}
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[BFS] BOJ 1303 전쟁 - 전투 (0) | 2022.02.23 |
---|---|
[브루트 포스] BOJ 16943 숫자 재배치 (0) | 2022.02.20 |
[문자열] BOJ 1213 팰린드롬 만들기 (0) | 2022.02.14 |
[브루트 포스] BOJ 1198 삼각형으로 자르기 (0) | 2022.02.11 |
[그리디] BOJ 2212 센서 (0) | 2022.02.08 |