๐Ÿ‘ฉ๐Ÿป‍๐ŸŒพ

[๋ฐฑ์ค€/Python] 1747๋ฒˆ ์†Œ์ˆ˜ & ํŒฐ๋ฆฐ๋“œ๋กฌ ์ˆ˜ ์ค‘์—์„œ ์ตœ์†Ÿ๊ฐ’ ์ฐพ๊ธฐ ๋ณธ๋ฌธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€/Python] 1747๋ฒˆ ์†Œ์ˆ˜ & ํŒฐ๋ฆฐ๋“œ๋กฌ ์ˆ˜ ์ค‘์—์„œ ์ตœ์†Ÿ๊ฐ’ ์ฐพ๊ธฐ

์ฅฌ์Šค์ด 2023. 3. 14. 17:55
728x90

1๏ธโƒฃ๋ฌธ์ œ ์„ค๋ช…

์–ด๋–ค ์ˆ˜์™€ ๊ทธ ์ˆ˜์˜ ์ˆซ์ž ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์€ ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์ˆ˜๋ฅผ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ผ ๋ถ€๋ฅธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 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์ผ ๋•Œ๋ฅผ ๋”ฐ๋กœ ๊ณ ๋ คํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋ฏ€๋กœ ์ด ๊ฒฝ์šฐ๋„ ๊ณ ๋ คํ•ด์ค˜์•ผ ํ•œ๋‹ค.

728x90
Comments