๐ฉ๐ป๐พ
[๋ฐฑ์ค/Python] 1747๋ฒ ์์ & ํฐ๋ฆฐ๋๋กฌ ์ ์ค์์ ์ต์๊ฐ ์ฐพ๊ธฐ ๋ณธ๋ฌธ
[๋ฐฑ์ค/Python] 1747๋ฒ ์์ & ํฐ๋ฆฐ๋๋กฌ ์ ์ค์์ ์ต์๊ฐ ์ฐพ๊ธฐ
์ฅฌ์ค์ด 2023. 3. 14. 17:551๏ธโฃ๋ฌธ์ ์ค๋ช
์ด๋ค ์์ ๊ทธ ์์ ์ซ์ ์์๋ฅผ ๋ค์ง์ ์๊ฐ ์ผ์นํ๋ ์๋ฅผ ํฐ๋ฆฐ๋๋กฌ์ด๋ผ ๋ถ๋ฅธ๋ค. ์๋ฅผ ๋ค์ด 79,197๊ณผ 324,423 ๋ฑ์ด ํฐ๋ฆฐ๋๋กฌ ์์ด๋ค.
์ด๋ค ์ N (1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ก์ ๋, N๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , ์์์ด๋ฉด์ ํฐ๋ฆฐ๋๋กฌ์ธ ์ ์ค์์, ๊ฐ์ฅ ์์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
2๏ธโฃ์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค.
3๏ธโฃ์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ฉ๐ป๐ป์์ฑํ ์ฝ๋
def Eratos(checkPrime):
for i in range(2, int(checkPrime ** 0.5) + 1):
if int(checkPrime) % i == 0:
return False
return True
n = int(input()) # ์ด๋ค ์ N
answer = 0
for i in range(n, 1000001):
if i == 1:
continue
# ์
๋ ฅ๊ฐ์ด ์ต๋๊ฐ์ธ 100๋ง์ผ ๊ฒฝ์ฐ
if i == 1000000:
answer = 1003001
if str(i) == str(i)[::-1]:
if Eratos(i):
answer = i
break
print(answer)
๐ก์ฝ๋ ์ค๋ช
์์ ํ๋ณ-> ํจ์ Eratos()๋ก ํ์ธํ๋ค.
ํฐ๋ฆฐ๋๋กฌ ์ ํ๋ณ -> ์ ๋ ฅ ๋ฐ์ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ณ [::-1]์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์ญ์์ผ๋ก ์ถ๋ ฅํ์ ๋, ๊ธฐ์กด ๋ฌธ์์ด๊ณผ ๊ฐ์์ง๋ฅผ ํตํด ํ์ธํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ ฅ๊ฐ์ด N์ ์ต๋๊ฐ์ธ 1,000,000์ผ ๋๋ฅผ ๋ฐ๋ก ๊ณ ๋ คํด์ฃผ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋จ๋ฏ๋ก ์ด ๊ฒฝ์ฐ๋ ๊ณ ๋ คํด์ค์ผ ํ๋ค.
'์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/Python] 1456๋ฒ ๊ฑฐ์ ์์ (0) | 2023.03.15 |
---|---|
[๋ฐฑ์ค/Python] 11689๋ฒ GCD(n, k) = 1 (0) | 2023.03.14 |
[๋ฐฑ์ค/Python] 1181๋ฒ ๋จ์ด ์ ๋ ฌ (0) | 2023.03.10 |
[๋ฐฑ์ค/Python] 1541๋ฒ ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2023.03.09 |
[๋ฐฑ์ค/Python] 1931๋ฒ ํ์์ค ๋ฐฐ์ (0) | 2023.03.09 |