반응형
문제
숫자를 뒤집고 뒤집은 숫자가 소수이면 출력하시오.
주의
풀이
import sys
def reverse(x):
# 초기화 하나 한다.
res=0
# while 문으로 x가 0보다 클 때 항상 반복문을 돌려준다.
while x>0:
# x의 1의 자리 숫자가 t가 된다.
t=x%10
res=res*10+t
# x는 10으로 나눈 몫으로 바꿔진다.
x=x//10
# res를 리턴한다.
return res
def isPrime(x):
# x의 값이 1일 수 있다.
if x==1:
# False 시켜줘야 한다.
return False
# 소수를 구하려면 값의 반 정도까지만 구하면 된다.
# 그 뒤쪽은 어차피 다 걸러진다.
# 2로 나눈 몫의 +1을 해줘 절반까지 돌게 한다.
for i in range(2, x//2+1):
# x는 i의 약수가 존재하면
if x%i==0:
# 리턴을 False한다.
return False
#위 와 같은 상황이 아니라면
else:
# 정상적으로 끝난 값을 True해 준다.
return True
n=int(input())
a=list(map(int,input().split()))
for x in a:
# x를 reverse 함수로 보내고 리턴 받아 tmp에 담는다.
tmp = reverse(x)
# reverse 된 값을 inPrime, 소수 구하는 함수에 보내 리턴 받아 값을 나타낸다.
if isPrime(tmp):
print(tmp, end=" ")
숫자를 뒤집어주는 함수와 소수를 구하는 함수를 만들어 준다.
자세한 내용은 주석을 참고하면 된다.
반응형
'Algorithm > 파이썬 알고리즘 문제풀이 (코딩테스트대비)' 카테고리의 다른 글
[파이썬 알고리즘 문제풀이] : 점수계산 (0) | 2021.12.28 |
---|---|
[파이썬 알고리즘 문제풀이] : 주사위 게임 (0) | 2021.12.23 |
[파이썬 알고리즘 문제풀이] : 소수 구하기 (에라토스테네스의 체) (0) | 2021.12.21 |
[파이썬 알고리즘 문제풀이] : 자릿수의 합 (0) | 2021.12.20 |
[파이썬 알고리즘 문제풀이] : 정다면체 (0) | 2021.12.16 |
댓글