๋ฌธ์ ์ ๋ชฉ
๐ ๋ฌธ์
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 = ' ')
'๐งฉ Algorithm > ๐จ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์ ์๊ณ์ฐ (0) | 2022.07.24 |
---|---|
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์ฃผ์ฌ์ ๊ฒ์ (0) | 2022.07.24 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์์(์๋ผํ ์คํ ๋ค์ค ์ฒด) (0) | 2022.07.24 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์๋ฆฟ์์ ํฉ (0) | 2022.07.24 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์ ๋ค๋ฉด์ฒด (0) | 2022.07.24 |