본문 바로가기

코딩테스트 with PYTHON

[python] 코딩테스트 대비 - 소수뒤집기

문제)

 

답안코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import sys
#sys.stdin=open("input.txt", "r")
def reverse(x):#뒤집은 숫자 리턴
    res=0
    while x>0:
        #ex) 120 ㅡ> 
        # 1단계:(t=0 res=0*10+0=0 x=12) 
        # 2단계:(t=2 res=0*10+2=2 x=1)
        # 3단계:(t=1 res=2*10+1=21 x=0)
        t=x%10#첫번째 자리수
        res=res*10+t#뒤집은 결과
        x=x//10#다음 자리 접근
    return res
 
def isPrime(x):#소수인지 확인
    if x==1:#1은 소수가 아님
        return False
    for i in range(2, x//2+1):#x의 절반까지만 돌아도 소수인지 파악 가능.
        if x%i==0:
            return False
    return True
 
n=int(input())
a=list(map(int, input().split()))
 
for x in a:
    tmp=reverse(x)#뒤집은 소수
    if isPrime(tmp):#소수인지 확인
        print(tmp, end=' ')

#문자열로 접근하여 푸는 방법도 있다.
cs