1. 문제
# n 개의 자연수 입력되면 각 자연수 뒤집고 그 수가 소수이면 그 수를 출력하라
# 첫 자리부터 연속된 0은 무시
2. 풀이
# 방법1
import sys
# sys.stdin=open("input.txt", "r")
num_count = int(input())
numbers = list(map(int, input().split()))
rev_num = [] # 뒤집어진 숫자 리스트
# 자릿수 뒤집는 함수
def reverse(x):
result = 0
# 끝자리 0인 경우 나누기 10 처리
while x%10 == 0:
x = x/10
x = int(x)
z_len = len(str(x))
for i in range(1,z_len+1):
result *= 10
result += x%10
x = int(x/10)
return result
# 소수인지 확인하는 함수
def isPrime(x):
if x == 1:
return False
is_s = True # 소수인가
for s in range(2,int(x**(1/2))+1):
if x%s==0:
is_s = False
break
return is_s
# 자릿수 뒤집어서 rev_num 에 넣기
for k in range(0, num_count):
rev_num.append(reverse(numbers[k]))
# rev_num 중 소수인것만 출력
for i in rev_num:
if isPrime(i) == True:
print(i, end=' ')
# 방법2
import sys
# sys.stdin=open("input.txt", "r")
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=' ')
3. 배운 내용
1) // : 파이썬에서 몫을 구하는 연산자
2) 소수 구할 때 1은 제외시키기
3) list.reverse(): 리스트 순서 반전, 문자열튜플딕셔너리는 못뒤집음
'백앤드 개발 > 코딩테스트' 카테고리의 다른 글
[파이썬 문제 풀이] OX 퀴즈 (1) | 2023.10.10 |
---|---|
[파이썬 문제 풀이] 주사위 굴리기 (0) | 2023.10.10 |
[파이썬 문제 풀이] 소수 (1) | 2023.10.10 |
[파이썬 문제풀이] 자릿수의 합 (0) | 2023.10.10 |
[파이썬 문제풀이] 정다면체 (1) | 2023.10.07 |