๐ง ๋ฌธ์
์์ฐ์ N์ด ์ ๋ ฅ๋๋ฉด N! ๊ฐ์์ ์ผ์ ์๋ฆฌ๋ถํฐ ์ฐ์์ ์ผ๋ก 0์ด ๋ช ๊ฐ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋ง์ฝ, 5! = 120 = ์ผ์ ์๋ฆฌ๋ถํฐ ์ฐ์์ ์ธ 0์ ๊ฐฏ์๋ 1๊ฐ์ด๋ค.
๋ง์ฝ, 12! = 479001600์ผ๋ก ์ผ์ ์๋ฆฌ๋ถํฐ ์ฐ์์ ์ธ 0์ ๊ฐฏ์๋ 2๊ฐ์ด๋ค.
๐ง ์ ๋ ฅ
12
๐ง ์ถ๋ ฅ
2
๐ง 1ํธ (๊ฐ์ ํ์ด)
10์ด ์ผ๋ง๋ ์๋๊ฐ? ๋ฅผ ํ์ธํ๋ฉด ๋๋ค. ๐ 10 = 2 * 5 ์ด๋ฏ๋ก, ๊ฐ์ ์์ธ์๋ถํดํ์ฌ 2์ 5์ ๊ฐฏ์๋ฅผ ํ์ธํ๋ค.
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
int main(void){
//freopen("input.txt", "rt", stdin);
int n, j, tmp;
int cnt1 = 0, cnt2 = 0;
cin >> n;
for(int i = 2; i <= n; ++i){
tmp = i;
j = 2;
while(true){
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;
}
return 0;
}
'๐ง ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธํ๋ฐ C++] 30. 3์ ๊ฐ์๋? (large) (0) | 2024.04.23 |
---|---|
[์ธํ๋ฐ C++] 29. 3์ ๊ฐ์๋? (small) (0) | 2024.04.23 |
[์ธํ๋ฐ C++] 27. N!์ ํํ๋ฒ (0) | 2024.04.23 |
[์ธํ๋ฐ C++] 26. ๋ง๋ผํค (0) | 2024.04.23 |
[์ธํ๋ฐ C++] 25. ์์ฐจ ๊ตฌํ๊ธฐ (0) | 2024.04.23 |