โ๏ธ ๋ฌธ์
์์์ N์ ๋ํ์ฌ N!์ 1๋ถํฐ N๊น์ง์ ๊ณฑ์ ์๋ฏธํ๋ค.
์ด๋ฌํ ํฐ ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์๋ค์ ๊ณฑ์ผ๋ก ํํํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์๋ฅผ๋ค์ด 825 = 0 1 2 0 1 ๋ก ํํ๊ฐ๋ฅํ๋ฐ, ์ด๋ 2๋ ์๊ณ , 3์ 1๋ฒ, 5๋ 2๋ฒ, 7์ ์๊ณ , 11์ 1๋ฒ์ ๊ณฑ์ด๋ผ๋ ์๋ฏธ์ด๋ค.
์ด์ ๊ฐ์ด ๋ณํํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด๋ณด์.
๐ง ์ ๋ ฅ
5
๐ญ ์ถ๋ ฅ
5! = 3 1 1
โจ 1ํธ (๊ฐ์ ํ์ด)
์์๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค์ง, ๋ง๋ ๋ค๋ฉด ์ ๋ ฅ๋ n๊น์ง์ ์์์ ๊ฐฏ์๋งํผ ๋ง๋ค์ด์ผํ ์ง? ๋ ๊ทธ๋ ๋ค๋ฉด, ๊ทธ ๋งํผ ์์ํ๋ณ๊ธฐ๋ฅผ ๊ตด๋ ค์ ํด์ผํ๋๋ฐ ์ด๊ฒ ํจ์จ์ ์ด์ง ์์ ๊ฒ ๊ฐ์. n๊น์ง์ ๋ชจ๋ ์๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋๋ ๊ฒ ๊ฐ์ง ์์. ์์๋ง ์นด์ดํ ํด์ผํ๋๊น. ์ด๋ป๊ฒ ํ์ด์ผํ ์ง ํ๋จ์ด ์์์ ๊ฐ์ํ์ด๋ฅผ ๋ณด๊ธฐ๋ก ํ์๋ค.
๊ฐ์ํ์ด ๐ ๋ฐฐ์ด์ ๋ง๋๋ ๊ฒ ๋ง์. n๊น์ง์ ๊ฐ๋ค ๋ชจ๋. ๋จ, 2๋ถํฐ ์์ธ์๋ถํด ๊ฒธ ๋ฐฐ์ด์ ํด๋น ์์์ ++๋ฅผ ํด์ค๋ค. ๋ง์ฝ, 8๊ณผ ๊ฐ์ ์๊ฐ ์๋ค๋ฉด, 8/2 = 4์ธ๋ฐ, ๋ฐ๋ก 3์ผ๋ก ๋๋ ์ฃผ๋ ๊ฒ์ด ์๋๋ผ, 2๋ก ๋๋ ์ ์์ ๋๊น์ง ๊ณ์ํด์ ๋๋ ์ค๋ค๋ ๊ฒ์ด ํฌ์ธํธ. ๊ทธ๋ฌ๋ค๊ฐ ํด๋น๊ฐ์ด 1์ด ๋ ๋ while๋ฌธ ํ์ถ
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
int main(void){
//freopen("input.txt", "rt", stdin);
int n, tmp, j;
cin >> n;
vector<int> a(n+1);
for(int i = 2; i <= n; ++i){
tmp = i;
j = 2;
while(true){
if(tmp % j == 0){
tmp = tmp / j;
a[j]++;
}
else{
j++;
}
if(tmp == 1) break;
}
}
cout << n << "! = ";
for(int i = 2; i <=n; ++i){
if(a[i] != 0){
cout << a[i] << ' ';
}
}
return 0;
}
'๐ง ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธํ๋ฐ C++] 29. 3์ ๊ฐ์๋? (small) (0) | 2024.04.23 |
---|---|
[์ธํ๋ฐ C++] 28. N!์์ 0์ ๊ฐฏ์ (0) | 2024.04.23 |
[์ธํ๋ฐ C++] 26. ๋ง๋ผํค (0) | 2024.04.23 |
[์ธํ๋ฐ C++] 25. ์์ฐจ ๊ตฌํ๊ธฐ (0) | 2024.04.23 |
[์ธํ๋ฐ C++] 24. Jolly Jumpers (0) | 2024.04.23 |