We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 2023๋ฒˆ: ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜

Redddy 2022. 5. 2. 00:09

๐Ÿงฉ๋ฌธ์ œ ํ•ด์„

์ž๋ฆฌ์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ทธ n ์ž๋ฆฌ์ˆ˜์ธ ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ
์‹ ๊ธฐํ•œ ์†Œ์ˆ˜๋ž€ 
n = 4 ์ผ ๊ฒฝ์šฐ
num[0] ๋„ ์†Œ์ˆ˜
num[:2] ๋„ ์†Œ์ˆ˜
num[:3] ๋„ ์†Œ์ˆ˜
num ๋„ ์†Œ์ˆ˜๋ผ๋ฉด num์€ ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜์ด๋‹ค. 
์ฆ‰ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋„, ์ฒซ๋ฒˆ์งธ๋ถ€ํ„ฐ ๋‘๋ฒˆ์งธ์ˆซ์ž๋„, ... ์ฒซ๋ฒˆ์งธ๋ถ€ํ„ฐ n๋ฒˆ์งธ์ˆซ์ž๋„ ์†Œ์ˆ˜๋ผ๋ฉด ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜์ธ ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ” ๊ณ ๋ฏผ

๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋Œ€์ž…ํ•ด๊ฐ€๋ฉฐ ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•œ๋‹ค๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ ๊ฒŒ ๋ป”ํ–ˆ๋‹ค. (์š”์ฆ˜ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋งŽ์ด ๋‚œ๋‹ค...ใ…Ž)
์˜ˆ์ œ ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ˆ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ ์ด ์žˆ์—ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋Š” ๋ฌด์กฐ๊ฑด 2,3,5,7 ์ด๊ณ  ๊ทธ ๋‹ค์Œ์— ์˜ค๋Š” ์ˆซ์ž๋“ค์€ 1,3,7,9 ๋“ค์ด ๋ง‰ ์กฐํ•ฉ๋˜์–ด์„œ ๋‚˜ํƒ€๋‚ฌ๋‹ค. ๋Œ๋ ค๋ณผ ์ˆซ์ž๋“ค์ด ์ ˆ๋ฐ˜์ด์ƒ ์ค„์–ด๋“ค์—ˆ๋‹ค!

 

์ฒซ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ 2, 3, 5, 7 ์ธ ์ด์œ !

์–ด์ฐŒ๋ณด๋ฉด ๋‹น์—ฐํ•œ ์ด์•ผ๊ธฐ์ด๋‹ค. ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜๊ฐ€ ๋˜๋ ค๋ฉด ์ œ์ผ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋„ ์†Œ์ˆ˜์—ฌ์•ผ ํ•˜๋‹ˆ ๋‹น์—ฐํžˆ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋Š” ์†Œ์ˆ˜์ธ 2, 3, 5, 7 ๋ฐ–์— ์˜ค์ง€ ๋ชปํ•œ๋‹ค.

 

 

๋‹ค์Œ ์ˆซ์ž๋“ค์ด 1, 3, 7, 9 ์ธ ์ด์œ !

๋์ž๋ฆฌ๊ฐ€ 0, 2, 4, 6, 8์ด๋ฉด 2๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์ˆ˜๊ฐ€ ๋˜์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋์ž๋ฆฌ๊ฐ€ 5๊ฐ€ ๋˜๋ฉด 5๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— 0, 2, 4, 5, 6, 8๊ฐ€ ๋’ค์— ์˜ฌ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ“˜ํ’€์ด

1. ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋Š” ๋ฌด์กฐ๊ฑด 2, 3, 5, 7๋กœ 
2. ๊ทธ ๋‹ค์Œ ์ˆซ์ž๋“ค์€ 1, 3, 7, 9 ๋ฅผ ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด๋ณธ ๋‹ค์Œ ๋งŒ์•ฝ ์†Œ์ˆ˜๋ผ๋ฉด return
3. ํ•ฉ์นœ ์ˆซ์ž๋“ค์ด ์†Œ์ˆ˜์ด๊ณ  ์ฃผ์–ด์ง„ ๊ธธ์ด n์ด๋ผ๋ฉด ์ถœ๋ ฅ

 

๋งˆ์น˜ ํ•ฉ์ฒด ์‹œํ‚ค๋“ฏ์ด ๋’ค์— ์ˆซ์ž๋“ค์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ์†Œ์ˆ˜๋ผ๋ฉด ํ•˜๋‚˜ํ•ฉ์ฒด, ์†Œ์ˆ˜๋ผ๋ฉด ํ•˜๋‚˜ํ•ฉ์ฒด ์ด๋ ‡๊ฒŒ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ n์ด ๋˜๋ฉด ์ถœ๋ ฅํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ’ป์ฝ”๋“œ

def isprime(num): 
	# ์†Œ์ˆ˜ ํŒ๋ณ„
    for i in range(2, int(int(num)**0.5)+1): 
        # 2~์ œ๊ณฑ๊ทผ๊นŒ์ง€ ์ญ‰ ๋‚˜๋ˆ ๋ณด๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ์—†๋‹ค๋ฉด ์†Œ์ˆ˜์•„๋‹˜
        if int(num) % i == 0: 
            return 
    
    # ์ฃผ์–ด์ง„ ๊ธธ์ด n์— ๋„๋‹ฌํ–ˆ๋‹ค๋ฉด ์ถœ๋ ฅ
    if len(num) == n:
        print(num) 
        return 

	# ๋‹ค์Œ ์ˆซ์ž์ธ 1,3,7,9๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
    for j in secon: 
        isprime(num+j) 

n = int(input()) 
         
first = ['2', '3', '5', '7'] # ์ฒซ๋ฒˆ์งธ ์ˆซ์ž
secon = ['1', '3', '7', '9'] # ๋‹ค์Œ ์ˆซ์ž

for k in first: isprime(k)

 

๐Ÿ“Ž๋ฌธ์ œ๋งํฌ: ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜

 

2023๋ฒˆ: ์‹ ๊ธฐํ•œ ์†Œ์ˆ˜

์ˆ˜๋นˆ์ด๊ฐ€ ์„ธ์ƒ์—์„œ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์€ ์†Œ์ˆ˜์ด๊ณ , ์ทจ๋ฏธ๋Š” ์†Œ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ๋…ธ๋Š” ๊ฒƒ์ด๋‹ค. ์š”์ฆ˜ ์ˆ˜๋นˆ์ด๊ฐ€ ๊ฐ€์žฅ ๊ด€์‹ฌ์žˆ์–ด ํ•˜๋Š” ์†Œ์ˆ˜๋Š” 7331์ด๋‹ค. 7331์€ ์†Œ์ˆ˜์ธ๋ฐ, ์‹ ๊ธฐํ•˜๊ฒŒ๋„ 733๋„ ์†Œ์ˆ˜์ด๊ณ , 73๋„ ์†Œ์ˆ˜

www.acmicpc.net