๋ฌธ์ œ ์ œ๋ชฉ

๐Ÿ“„ ๋ฌธ์ œ

N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๊ฐ ์ž์—ฐ์ˆ˜๋ฅผ ๋’ค์ง‘์€ ํ›„
๊ทธ ๋’ค์ง‘์€ ์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ด๋ฉด ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.
์˜ˆ๋ฅผ ๋“ค์–ด 32๋ฅผ ๋’ค์ง‘์œผ๋ฉด 23์ด๊ณ , 23์€ ์†Œ์ˆ˜์ด๋‹ค.
๊ทธ๋Ÿฌ๋ฉด 23์„ ์ถœ๋ ฅ ํ•œ๋‹ค.
๋‹จ 910๋ฅผ ๋’ค์ง‘์œผ๋ฉด 19๋กœ ์ˆซ์žํ™” ํ•ด์•ผ ํ•œ๋‹ค.
์ฒซ ์ž๋ฆฌ๋ถ€ํ„ฐ์˜ ์—ฐ์†๋œ 0์€ ๋ฌด์‹œํ•œ๋‹ค.
๋’ค์ง‘๋Š” ํ•จ์ˆ˜์ธ def reverse(x) ์™€ ์†Œ์ˆ˜์ธ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜ def isPrime(x)๋ฅผ ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•œ๋‹ค.

โ–ฃ ์ž…๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— ์ž์—ฐ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(3<=N<=100)์ด ์ฃผ์–ด์ง€๊ณ ,
๊ทธ ๋‹ค์Œ ์ค„์— N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
๊ฐ ์ž์—ฐ์ˆ˜์˜ ํฌ๊ธฐ๋Š” 100,000๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

โ–ฃ ์ถœ๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— ๋’ค์ง‘์€ ์†Œ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
์ถœ๋ ฅ์ˆœ์„œ๋Š” ์ž…๋ ฅ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ
5
32 55 62 3700 250

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ
23 73

๐Ÿงž ํ’€์ด

๋”๋ณด๊ธฐ

ํ’€์ด

# ์ž…๋ ฅ : ์ฒซ ์งธ ์ค„ ์ž์—ฐ์ˆ˜ ๊ฐœ์ˆ˜ n, ๊ทธ ๋‹ค์Œ ์ค„ n๊ฐœ์˜ ์ž์—ฐ์ˆ˜
# ์ถœ๋ ฅ : ๋’ค์ง‘์€ ์†Œ์ˆ˜ ์ž…๋ ฅ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅ

from math import sqrt                               # math ํŒจํ‚ค์ง€์—์„œ sqrt ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ


def reverse(x):                                     # reverse() ํ•จ์ˆ˜ ์ •์˜
    rev_num = 0                                     # ๋ณ€์ˆ˜ rev_num ํ• ๋‹น
    rev_list = []                                   # ๋นˆ ๋ฆฌ์ŠคํŠธ rev_list ํ• ๋‹น
    for i in range(len(x), 0, -1):                  # x์˜ ๊ธธ์ด๋ถ€ํ„ฐ, 1๊นŒ์ง€ ์—ญ์ˆœ์œผ๋กœ ๋ฐ˜๋ณต
        rev_list.append(x[i-1])                     # rev_list์— x์˜ i ์ธ๋ฑ์Šค ๊ฐ’ ์ถ”๊ฐ€
    rev_num = int("".join(rev_list))                # ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ ํ•ฉ์ณ์„œ ์ •์ˆ˜ํ™”ํ•˜์—ฌ rev_num์— ํ• ๋‹น
    return rev_num                                  # rev_num ๋ฐ˜ํ™˜

def isPrime(x):                                     # isPrime() ํ•จ์ˆ˜ ์ •์˜
    cnt = 0                                         # ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” cnt ํ• ๋‹น
    for i in range(2, int(sqrt(x))+2):              # 2๋ถ€ํ„ฐ sqrt(x) + 1๊นŒ์ง€ ๋ฐ˜๋ณต
        if x == 1:                                  # ๋งŒ์•ฝ x๊ฐ€ 1์ด๋ฉด,
            cnt += 1                                # cnt์— 1์„ ๋”ํ•ด์คŒ
        if x % i == 0 and x != i:                   # ๋งŒ์•ฝ x๊ฐ€ i์™€ ๋‹ค๋ฅด๋ฉด์„œ, x๋ฅผ i๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ ๊ฒฝ์šฐ,
            cnt += 1                                # cnt์— 1์„ ๋”ํ•ด์คŒ
            break                                   # break
    if cnt == 0:                                    # ์†Œ์ˆ˜๋ผ๋ฉด
        a_list.append(x)                            # a_list์— x๋ฅผ ์ถ”๊ฐ€



n = int(input())                                    # ์ž…๋ ฅํ•  ์ž์—ฐ์ˆ˜ ๊ฐœ์ˆ˜ n๊ฐœ
num_list = list(map(list, input().split()))         # ๊ฐ ์ž…๋ ฅ๋œ ์ž์—ฐ์ˆ˜๋ฅผ ๊ฐ๊ฐ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ
a_list = []                                         # ์ •๋‹ต์„ ๋‹ด์„ ๋นˆ ๋ฆฌ์ŠคํŠธ a_list ํ• ๋‹น

for i in num_list:                                  # num_list์˜ ์š”์†Œ ๋ฐ˜๋ณต
    isPrime(reverse(i))                             # i๋งˆ๋‹ค reverse() ํ•จ์ˆ˜ ์„  ์‹คํ–‰ํ›„, isPrime() ํ•จ์ˆ˜ ์‹คํ–‰

print(*a_list, end = " ")                           # a_list ์–ธํŒจํ‚นํ•˜์—ฌ, ๊ณต๋ฐฑ ํ•˜๋‚˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ถœ๋ ฅ

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

# ๋’ค์ง‘์€ ์†Œ์ˆ˜

def reverse(x):
    res = 0 # ๋’ค์ง‘์€ ์ˆซ์ž ์ดˆ๊ธฐ ๊ฐ’

    # x๊ฐ€ 0๋ณด๋‹ค ํด ๋™์•ˆ ๊ณ„์† ๋ฐ˜๋ณต,
    # x๊ฐ€ 0์ด ๋˜๊ฑฐ๋‚˜ ์Œ์ˆ˜๊ฐ€ ๋˜๋ฉด ๋ฐ˜๋ณต ๋ฉˆ์ถค
    while x > 0:
        t = x % 10 # x๋ฅผ 10์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ - 1์˜ ์ž๋ฆฌ ์ˆซ์ž
        res = res * 10 + t # t๋ฅผ ๋”ํ•ด์ฃผ๊ณ , ๊ธฐ์กด์˜ res ๊ฐ’์€ * 10
        x = x // 10 # x๋Š” 10์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ - 1์˜ ์ž๋ฆฌ ์ˆซ์ž ๋นผ๊ณ  ๋‚˜๋จธ์ง€
    return res

def isPrime(x):
    if x == 1: # x๊ฐ€ 1์ด๋ฉด
        return False # False ์ถœ๋ ฅ - ์†Œ์ˆ˜๊ฐ€ ์•„๋‹˜
    for i in range(2, x//2+1): # 2๋ถ€ํ„ฐ x๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ๋ชซ๊นŒ์ง€,
        if x % i == 0: # x๊ฐ€ ํ•ด๋‹น i๋กœ ๋‚˜๋ˆ  ๋–จ์–ด์ง€๋ฉด
            return False # False ์ถœ๋ ฅ - ์†Œ์ˆ˜๊ฐ€ ์•„๋‹˜
    else:
        return True # ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ฉด True ์ถœ๋ ฅ - ์†Œ์ˆ˜์ž„


n = int(input())
a = list(map(int, input().split()))
for x in a :
    tmp = reverse(x)
    if isPrime(tmp):
        print(tmp, end = ' ')

+ Recent posts