์ฝ์ ๊ณ์ฐ๊ธฐ๋ก ๋ฌด์์ ํ ์ ์๋์?
์ด ์ฝ์ ๊ณ์ฐ๊ธฐ๋ ์ ์ ํ๋๋ฅผ ์ ๋ ฅํ๋ฉด ๋ ๊ฐ์ง ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ๋ณด์ฌ ์ค๋๋ค. ๋ฐ๋ก ๊ทธ ์์ ๋ชจ๋ ์ฝ์์ ์์ธ์๋ถํด ๊ฒฐ๊ณผ์ ๋๋ค. ์ฝ์๋ ์ด๋ค ์๋ฅผ ๋๋์ด๋จ์ด์ง๊ฒ ํ๋, ์ฆ ๋๋จธ์ง๊ฐ 0์ด ๋๋ ์ ์๋ฅผ ๋งํฉ๋๋ค. ์์ธ์๋ ๊ณฑํ์ ๋ ์๋์ ์๊ฐ ๋๋ ์์(prime number)๋ค๋ก, ๊ทธ ์๋ฅผ ์ด๋ฃจ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ ์์๋ผ๊ณ ํ ์ ์์ต๋๋ค. ์์ ๋ฅผ ํ ๋, ๋ถ์๋ฅผ ์ฝ๋ถํ ๋, ์ต๋๊ณต์ฝ์๋ฅผ ์ฐพ์ ๋, ๋๋ ์์ ์ฑ์ง์ ์ดํด๋ณผ ๋ ๋๋ฃจ ์ธ ์ ์๋ ํธ๋ฆฌํ ๋๊ตฌ์ ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
์ ๋ ฅ๋์ ๋จ ํ๋, "์ฝ์๋ฅผ ๊ตฌํ ์:" ํญ๋ชฉ๋ฟ์ ๋๋ค. ์ ์(์์๋ ์์๋ )๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋จธ์ง ๊ณ์ฐ์ ๊ณ์ฐ๊ธฐ๊ฐ ์์์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๋๊ตฌ๋ ์ ๋๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐํ๋ฏ๋ก ๊ฒฐ๊ณผ๋ก ๋์ค๋ ์ฝ์๋ ํญ์ ์์์ ๋๋ค. ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ฒ์๋ 2,147,483,647๋ณด๋ค ์์ ์ ์์ด๋ฉฐ, ์ด ๊ฐ ์ด์์ ๊ณ์ฐ๋์ง ์์ต๋๋ค.
- 0์ ํน์ํ ๊ฒฝ์ฐ๋ก ์ฒ๋ฆฌ๋์ด 0์ ๋ฐํํฉ๋๋ค.
- ์์๋ ์ ๋๊ฐ์ ์ฌ์ฉํฉ๋๋ค(์: -12๋ 12์ ๋์ผํ ์ฝ์๋ฅผ ๊ฐ์ง๋๋ค).
๊ณ์ฐ ์๋ฆฌ
์ด ๊ณ์ฐ๊ธฐ๋ ์ ๋ ฅํ ์๊น์ง ๋ชจ๋ ์ซ์๋ฅผ ์ผ์ผ์ด ํ์ธํ๋ ๋์ , 1๋ถํฐ ๊ทธ ์์ ์ ๊ณฑ๊ทผ๊น์ง๋ง ๋ฐ๋ณตํฉ๋๋ค. ๋๋์ด๋จ์ด์ง๋ ๊ฐ ๊ฐ i๋ง๋ค i์ ๊ทธ ์ง์ด ๋๋ ๋ชซ(์ รท i)์ ํจ๊ป ๊ธฐ๋กํฉ๋๋ค. ์ด ์ ๊ณฑ๊ทผ ๋ฐฉ์์ ์ฝ์๋ฅผ ์์ผ๋ก ์ฐพ๊ธฐ ๋๋ฌธ์ ํฐ ์์ผ์๋ก ํจ์ฌ ๋น ๋ฆ ๋๋ค. ๊ฒฐ๊ณผ๋ ์ค๋ณต์ ์ ๊ฑฐํ ๋ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค. ์์ธ์๋ถํด์๋ ๊ฒ์ฆ๋ ์์ ์ฒ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ(Apache Commons Math)์ ์ฌ์ฉํด ์ ๋๊ฐ์ ์์ธ์๋ค๋ก ๋ถํดํฉ๋๋ค.
$$\text{Factors} = \left\{\, d \in \mathbb{Z}^{+} : \text{Number} \bmod d = 0 \,\right\}$$
์ค์ ์์
36์ ์ ๋ ฅํด ๋ด ์๋ค. ๋ฐ๋ณต์ 1๋ถํฐ 7๊น์ง ์งํ๋ฉ๋๋ค(\(\sqrt{36} = 6\)์ ๋ง ๋๋ ์ง์ ๊น์ง):
- 1์ 36์ ๋๋์ด๋จ์ด์ง๊ฒ ํจ โ 1๊ณผ 36 ๊ธฐ๋ก
- 2๋ 36์ ๋๋์ด๋จ์ด์ง๊ฒ ํจ โ 2์ 18 ๊ธฐ๋ก
- 3์ 36์ ๋๋์ด๋จ์ด์ง๊ฒ ํจ โ 3๊ณผ 12 ๊ธฐ๋ก
- 4๋ 36์ ๋๋์ด๋จ์ด์ง๊ฒ ํจ โ 4์ 9 ๊ธฐ๋ก
- 6์ 36์ ๋๋์ด๋จ์ด์ง๊ฒ ํจ โ 6 ๊ธฐ๋ก(์ง๋ 6์ด๋ฏ๋ก ํ ๋ฒ๋ง)
์ ๋ ฌํ๋ฉด ์ฝ์๋ 1, 2, 3, 4, 6, 9, 12, 18, 36 ์ ๋๋ค. ์์ธ์๋ 2, 2, 3, 3 ์ ๋๋ค(\(2 \times 2 \times 3 \times 3 = 36\)์ด๊ธฐ ๋๋ฌธ).
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ฝ์์ ์์ธ์๋ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์? ์ฝ์๋ ์ ๋ ฅํ ์๋ฅผ ๋๋์ด๋จ์ด์ง๊ฒ ํ๋ ๋ชจ๋ ์์ ๋๋ค. ๋ฐ๋ฉด ์์ธ์๋ ๊ณฑํ์ ๋ ๊ทธ ์๊ฐ ๋๋ ์์๋ค๋ง์ ๊ฐ๋ฆฌํต๋๋ค. 36์ ๊ฒฝ์ฐ ์ฝ์์๋ 12, 18 ๊ฐ์ ํฉ์ฑ์๋ ํฌํจ๋์ง๋ง, ์์ธ์๋ 2, 2, 3, 3๋ฟ์ ๋๋ค.
์์๋ฅผ ์ ๋ ฅํ๋ฉด ์ ์์ ์ฝ์๊ฐ ๋์ค๋์? ๊ณ์ฐ๊ธฐ๊ฐ ์ ๋๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ -12์ 12๋ ๋์ผํ ์์ ์ฝ์ ๋ชฉ๋ก์ ๋ณด์ฌ ์ค๋๋ค.
์ ๋ ฅํ ์ ์๋ ์์ ํฌ๊ธฐ์ ์ ํ์ด ์๋์? ๋ค, ์์ต๋๋ค. ์ซ์๋ 2,147,483,647๋ณด๋ค ์์์ผ ํ๋ฉฐ(์์์ ๊ฒฝ์ฐ ๊ทธ ์์๋ณด๋ค ์ปค์ผ ํฉ๋๋ค), ์ด ํ๊ณ๊ฐ ์ด์์ด๊ฑฐ๋ ์ดํ์ธ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง ์์ต๋๋ค.