[BOJ][๐ŸŸก5][๋ฐฑ์ค€#02023] ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜

์ž‘์„ฑ:    

์—…๋ฐ์ดํŠธ:

์นดํ…Œ๊ณ ๋ฆฌ:

ํƒœ๊ทธ: , , ,

๋ฌธ์ œ ์ถœ์ฒ˜

BAEKJOON Online Judge #2023


๋ฌธ์ œ

์ˆ˜๋นˆ์ด๊ฐ€ ์„ธ์ƒ์—์„œ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์€ ์†Œ์ˆ˜์ด๊ณ , ์ทจ๋ฏธ๋Š” ์†Œ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ๋…ธ๋Š” ๊ฒƒ์ด๋‹ค. ์š”์ฆ˜ ์ˆ˜๋นˆ์ด๊ฐ€ ๊ฐ€์žฅ ๊ด€์‹ฌ์žˆ์–ด ํ•˜๋Š” ์†Œ์ˆ˜๋Š” 7331์ด๋‹ค. 7331์€ ์†Œ์ˆ˜์ธ๋ฐ, ์‹ ๊ธฐํ•˜๊ฒŒ๋„ 733๋„ ์†Œ์ˆ˜์ด๊ณ , 73๋„ ์†Œ์ˆ˜์ด๊ณ , 7๋„ ์†Œ์ˆ˜์ด๋‹ค. ์ฆ‰, ์™ผ์ชฝ๋ถ€ํ„ฐ 1์ž๋ฆฌ, 2์ž๋ฆฌ, 3์ž๋ฆฌ, 4์ž๋ฆฌ ์ˆ˜ ๋ชจ๋‘ ์†Œ์ˆ˜์ด๋‹ค! ์ˆ˜๋นˆ์ด๋Š” ์ด๋Ÿฐ ์ˆซ์ž๋ฅผ ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜๋ผ๊ณ  ์ด๋ฆ„ ๋ถ™์˜€๋‹ค. ์ˆ˜๋นˆ์ด๋Š” N์ž๋ฆฌ์˜ ์ˆซ์ž ์ค‘์—์„œ ์–ด๋–ค ์ˆ˜๋“ค์ด ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜์ธ์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ˆ˜๋นˆ์ด๋ฅผ ์œ„ํ•ด N์ž๋ฆฌ ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ฐพ์•„๋ณด์ž.


์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N(1 โ‰ค N โ‰ค 8)์ด ์ฃผ์–ด์ง„๋‹ค.


์ถœ๋ ฅ

N์ž๋ฆฌ ์ˆ˜ ์ค‘์—์„œ ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.


์˜ˆ์ œ

์ž…๋ ฅ

4


์ถœ๋ ฅ

2333
2339
2393
2399
2939
3119
3137
3733
3739
3793
3797
5939
7193
7331
7333
7393


My Sol

def is_prime(n):
    for i in range(2, int(n**(1/2))+1):
        if not n%i: return False
    return True

N = int(input())
now = 1
primes = [2, 3, 5, 7]
while now < N:
    new_primes = []
    for prime in primes:
        for i in range(1, 10):
            p = prime*10+i
            if is_prime(p):
                new_primes.append(p)
    primes = new_primes
    now += 1

for p in primes:
    print(p)

์†Œ์ˆ˜ ํŒ์ •์„ ์œ„ํ•œ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

  1. 1์ž๋ฆฌ ์†Œ์ˆ˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•œ๋‹ค.
  2. ํ•ด๋‹น ์†Œ์ˆ˜๋ฅผ 10์”ฉ ๊ณฑํ•˜๊ณ  1๋ถ€ํ„ฐ 9๊นŒ์ง€ ๋”ํ•œ ๊ฐ’๋“ค์„ ์†Œ์ˆ˜ํŒ์ •ํ•˜์—ฌ ์†Œ์ˆ˜์ธ ์ˆ˜๋“ค๋งŒ primes์— ๋‹ค์‹œ ๋‹ด๋Š”๋‹ค.
  3. now๊ฐ€ N์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

for๋ฌธ์˜ ์ˆœ์„œ๋ฅผ prime์„ ๋จผ์ € ๋‘์–ด์•ผ ์ž‘์€ ์ˆ˜๋ถ€ํ„ฐ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์น˜๋œ๋‹ค.


๊ฒฐ๊ณผ

๋งž์•˜์Šต๋‹ˆ๋‹ค!!

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ