๋ฌธ์
์ ์ N์ด ์ฃผ์ด์ก์ ๋, ์์ธ์๋ถํดํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ N (1 โค N โค 10,000,000)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
N์ ์์ธ์๋ถํด ๊ฒฐ๊ณผ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ค. N์ด 1์ธ ๊ฒฝ์ฐ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์๋๋ค.
ํ์ด
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ํ์ฉํ๋ฉด ๊ฐ๋จํ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ์ฌ์ฉํ์ง ์์๋ ํ ์๋ ์์ง๋ง ์คํ์๊ฐ์ด ํฌ๊ฒ ์ฐจ์ด๋๋ค.

์์ ํ๋ณ ์๊ณ ๋ฆฌ์ฆ
01) ๊ฐ์ฅ ์์ด์ ์ธ ๋ฐฉ๋ฒ
: 2๋ถํฐ ํ๋ณํ๋ ์ ์ ๊น์ง ๋๋ ๋ณด๊ณ ๋๋จธ์ง๊ฐ 0์ด ์๋๋ฉด ์์๋ก ์ ์ํ๋ ๋ฐฉ๋ฒ. ์ถ์ฒํ์ง ์๋๋ค
02) ๋ฐ์ ๋ ๋ฐฉ๋ฒ
: 2๋ถํฐ ํด๋น ์ซ์์ root(N)๊น์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์๋ฆฌ๋ ์ฝ์์ ์ค์ฌ์ ๊ตฌํ๋ ๊ณผ์ ์ด๋ค
- i <= sqrt(N)
- i*i <= N ์ด ๋ ๋ฐฉ์์ผ๋ก ํํํ๋ค
03) ์๋ผํ ์คํ ๋ค์ค์ ์ฒด
์์๋ฅผ ํ๋ณํ ๋ฒ์๋งํผ ๋ฐฐ์ด์ ํ ๋นํ์ฌ, ํด๋นํ๋ ๊ฐ์ ๋ฃ์ด์ฃผ๊ณ ์ดํ์ ํ๋์ฉ ์ง์๋๊ฐ๋ ๋ฐฉ๋ฒ
01. ๋ฐฐ์ด์ ์์ฑํ์ฌ ์ด๊ธฐํํ๋ค.
02. 2๋ถํฐ ์์ํด์ ํน์ ์์ ๋ฐฐ์์ ํด๋นํ๋ ์๋ฅผ ๋ชจ๋ ์ง์ด๋ค.(์ง์ธ ๋ ์๊ธฐ์์ ์ ์ง์ฐ์ง ์๊ณ , ์ด๋ฏธ ์ง์์ง ์๋ ๊ฑด๋๋ด๋ค.)
03. 2๋ถํฐ ์์ํ์ฌ ๋จ์์๋ ์๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ค.
์ด ๋ฌธ์ ์์๋ 2๋ฒ์งธ ํ์ด๋ฅผ ์ฌ์ฉํ์๋ค.
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int N;
cin >> N;
if (N != 1){
// i*i <= N์ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉ
for (int i=2; i<=sqrt(N); i++){
while (N%i==0){
cout << i << endl;
N = N/i;
}
}
}
if (N > 1)
cout << N << endl;
}
https://myjamong.tistory.com/139
์์(Prime Number) ๊ตฌํ๊ธฐ ํจ์จ์ ์๊ณ ๋ฆฌ์ฆ :: ์ฝ๋์๋ชฝ
์์(Prime Number) ์์๋ ์์ ๋ณด๋ค ์์ ๋๊ฐ์ ์์ฐ์๋ฅผ ๊ณฑํ์ฌ ๋ง๋ค ์ ์๋ 1๋ณด๋ค ํฐ ์์ฐ์์ด๋ค. ex) 5๋ 5*1 ๋๋ 1*5๋ก ์๋ฅผ ๊ณฑํฉ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด ๊ทธ ์ ์์ ์ ํฌํจํ๊ธฐ ๋๋ฌธ์ 5๋
myjamong.tistory.com
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 4948๋ฒ : ๋ฒ ๋ฅดํธ๋ ๊ณต์ค (0) | 2021.08.08 |
---|---|
[๋ฐฑ์ค/C++] 1929๋ฒ : ์์ ๊ตฌํ๊ธฐ(์๊ฐ ์ด๊ณผ, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด) (0) | 2021.08.07 |
[๋ฐฑ์ค/C++] 2581๋ฒ : ์์ (0) | 2021.08.06 |
[๋ฐฑ์ค/C++] 1978๋ฒ : ์์ ์ฐพ๊ธฐ (0) | 2021.08.05 |
[๋ฐฑ์ค/C++] 1011๋ฒ : Fly me to the Alpha Centauri (0) | 2021.08.05 |
๋๊ธ