[Python] ์์ ์ฐพ๊ธฐ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ(Prime Number)
์์ : 1๊ณผ ์๊ธฐ ์์ ์ ์ ์ธํ๊ณ ์์ฐ์ ์ค ์ด๋ค ์ซ์๋ก๋ ๋๋์ด ๋จ์ด์ง์ง ์๋ ์ซ์
ex) 2,3,4,7...
1. ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๊ณ ๋ฆฌ์ฆ
def primenumber(x):
for i in range(2, x): # 2๋ถํฐ x-1๊น์ง์ ๋ชจ๋ ์ซ์
if x % i == 0: # ๋๋ ๋จ์ด์ง๋๊ฒ ํ๋๋ผ๋ ์์ผ๋ฉด False
return False
return True
ํจ์ ์ค๋ช : ์ซ์x๋ฅผ 2๋ถํฐ x-1๊น์ง์ ์ซ์๋ก ๋ชจ๋ ๋๋์ด ๋๋ ๋จ์ด์ง๋๊ฒ ํ๋๋ผ๋ ์์ผ๋ฉด False๋ฅผ ๋ฐํ, ๋๋ ๋จ์ด์ง๋ ๊ฒ์ด ์์ผ๋ฉด True ๋ฐํ
-> ์ซ์๊ฐ ์ปค์ง๋ฉด ๋งค์ฐ ๋นํจ์จ์ ์
2. ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ
์์ฐ์์ ์ฝ์์ ์กด์ฌํ๋ ์๋ฆฌ ์ฌ์ฉ
ex ) 25์ ๊ฒฝ์ฐ, 25์ ์ฝ์๋ 1, 5, 25์ด๋ค.
- 1 x 25 = 25
- 5 x 5 = 25
- 25 x 1 = 25
1๊ณผ ์๊ธฐ ์์ ์ ์ ์ธํ ์ฝ์๋ฅผ ํ์ธํ๋ ค๋ฉด ์ ๊ณฑ๊ทผ๊น์ง๋ง ํ์ธํ๋ฉด ๋๋ค.
์ฝ์๋ค์ด ๋์นญ์ ์ผ๋ก ์ง์ ์ด๋ฃจ๊ธฐ ๋๋ฌธ์, 5๊น์ง๋ง ๋๋ ๋จ์ด์ง๋์ง ํ์ธํ๋ฉด ์์ ์ธ์ง ํ๋ณ ๊ฐ๋ฅํ๋ค.
import math
def primenumber(x):
for i in range (2, int(math.sqrt(x) + 1): # 2๋ถํฐ x์ ์ ๊ณฑ๊ทผ๊น์ง์ ์ซ์
if x % i == 0: # ๋๋ ๋จ์ด์ง๋ ์ซ์๊ฐ ์์ผ๋ฉด ์์๊ฐ ์๋
return False
return True
์๊ธฐ ์์ ์ ์ ๊ณฑ๊ทผ(๋ฃจํธ)๊น์ง ํ์ธํ ๋ค,
๋๋์ด ๋จ์ด์ง๋ ์ซ์๊ฐ ์กด์ฌํ๋ฉด False, ๋๋์ด ๋จ์ด์ง๋ ์ซ์๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด True ๋ฐํ
-> ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ์ ์์ฃผ ์ถ์ ๋๋๋ฐ ์๊ฐ์ ํจ์จ์ ์ผ๋ก ์ค์ผ ์ ์์