https://www.acmicpc.net/problem/3474
음..
정수론 문제입니다.
0의 개수를 체크하라...
숫자의 뒤에 0이 붙으려면 소인수 분해를 했을 때
2와 5가 있어야합니다.
코드 공개합니다!
(사실 2를 안세고 5만세도되용!!!)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include <cstdio> #include <cstdlib> #include <cmath> #include <string.h> #include <queue> #include <iostream> #include <algorithm> #include <vector> #include <functional> #include <stack> #include <string> #define ll long long #define INF 987654321 #define MOD 10000 #define MAX_SIZE 751 #define mp make_pair #define pii pair<int, int> //ios::sync_with_stdio(false); cin.tie(0); using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; while (t--) { int n; cin >> n; ll cnt2 = 0, cnt5 = 0; for (int i = 2; i <= n; i *= 2) { cnt2 += n / i; } for (int i = 5; i <= n; i *= 5) { cnt5 += n / i; } printf("%lld\n", min(cnt2, cnt5)); } return 0; } | cs |
'알고리즘 > 구현' 카테고리의 다른 글
[14649] 문홍안 (0) | 2017.07.27 |
---|---|
[10986] 나머지 합 (0) | 2017.07.24 |
[5527] 전구 장식 (0) | 2017.07.05 |
[14499] 주사위 굴리기 (0) | 2017.04.16 |
[5624] 좋은 수 (0) | 2017.04.06 |