하루한줄 코딩일기

[인프런 - 파이썬 알고리즘 문제풀이] 2.8 뒤집은 소수 본문

Algorithm

[인프런 - 파이썬 알고리즘 문제풀이] 2.8 뒤집은 소수

jjuha 2022. 2. 4. 19:56

인프런 > 파이썬 알고리즘 문제풀이

섹션 2.8 뒤집은 소수

👊 내 문제 풀이

1) reverse() 함수

숫자를 문자열로 변환한 후 문자열 슬라이싱을 이용해 문자열을 뒤집고, 다시 int 타입으로 변환하여 return 한다. 뒤집은 수가 0으로 시작할 경우, str -> int 변환 과정에서 자동으로 0이 소거되기 때문에 따로 처리해줄 필요는 없다.

 

2) isPrime() 함수

숫자 x가 1이면 바로 False를 반환하고, 1이 아닐 경우 2 이상 x 미만의 범위에 약수가 존재하는 지 확인한다. 1과 자기 자신이 아닌 또 다른 약수가 존재하면 소수가 아니므로 False 반환한다. 모두 해당 사항이 없을 경우 True를 반환한다.

n=int(input())
arr = list(map(int, input().split()))

def reverse(x):
    return int(str(x)[::-1])

def isPrime(x):
    if x==1:
        return False
    for i in range (2, x):
        if x%i==0:
            return False
    return True

for i in range(n):
    arr[i] = reverse(arr[i])
    if isPrime(arr[i]):
        print(arr[i], end=' ')

채점 결과

 

💡 강의 해답

n=int(input())
a=list(map(int, input().split()))
def reverse(x):
    res=0
    while x>0:
        t=x%10
        res=res*10+t
        x=x//10
    return res

def isPrime(x):
    if x==1:
        return False
    for i in range(2, x):
        if x%i==0:
            return False
    return True

for x in a:
    tmp=reverse(x)
    if isPrime(tmp):
        print(tmp, end=' ')
Comments