๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
G5 | ์๋ผํ ์คํ ๋ค์ค์ ์ฒด, ๋ฌธ์์ด
์์๋ฅผ ์ฐพ๊ณ , ๊ทธ๊ฒ ์์์ด๋ฉด ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ์ธํ๋ค.
ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ์ธํ๋ ๋ฒ์ ๊ฐ๋จํ๋ค.
๋ฌธ์๋ฅผ ๋ค์ง์ด์ ๊ฐ์ผ๋ฉด True
๋ธ๋ฃจํธํฌ์ค๋ก ์ฐพ์๋ ๋ฌธ์ ํด๊ฒฐ์ ๊ฐ๋ฅํ์ง๋ง ์๋ผํ ์ค๋ฅผ ์ฐ๋๊ฒ๊ณผ ์๊ฐ์ด 10๋ฐฐ ์ด์ ์ฐจ์ด๋๋ค.
- ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์จ์ ์ ํ ์ซ์๊น์ง ์์๋ค์ ๊ตฌํด๋๋๋ค.
- ๊ทธ ์์์ด๋ฉด์ ํฐ๋ฆฐ๋๋กฌ์ด๋ฉด ๊ฐ์ ๋ฐํํ๊ณ ๋
๐ป์์ค ์ฝ๋
def make_eratos(l: int) -> list:
eratos = [1] * (l + 1)
eratos[0], eratos[1] = 0, 0
for i in range(2, l):
if eratos[i]:
for j in range(i * 2, l, i):
eratos[j] = 0
return eratos
def is_palindrome(n: int) -> bool:
s = str(n)
if s == s[::-1]:
return True
return False
if __name__ == '__main__':
N = int(input())
# 100๋ง์ด ๋์ด๊ฐ๋ ์ฒซ ์์๋ 1003001
limit = 1003001
prime = make_eratos(limit)
for num in range(N, limit + 1):
# 1. ์์์ธ์ง ํ๋ณํ ํ
# 2. ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ๋ณํ๊ธฐ
if prime[num] and is_palindrome(num):
print(num)
break
else:
print(1003001)
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋ฐ์ํ
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 3190. ๋ฑ (์ผ์ฑ SW ์ญ๋ ํ ์คํธ ๊ธฐ์ถ ๋ฌธ์ ) (0) | 2020.11.07 |
---|---|
[python] ๋ฐฑ์ค - 1655. ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์ (0) | 2020.11.05 |
[python] ๋ฐฑ์ค - 16916. ๋ถ๋ถ ๋ฌธ์์ด (0) | 2020.11.03 |
[python] SWEA - 10912. ์ธ๋ก์ด ๋ฌธ์ (0) | 2020.11.02 |
[python] SWEA - 10804. ๋ฌธ์์ด์ ๊ฑฐ์ธ์ (0) | 2020.11.01 |