1747번: 소수&팰린드롬
어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고,
www.acmicpc.net
문제
어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.
어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다.
출력
첫째 줄에 조건을 만족하는 수를 출력한다.
코드
n = int(input())
# 팰린드롬 수인지?
def isPalindrome(n):
num = str(n)
reverse_num = num[::-1]
if num == reverse_num:
return True
return False
# 에라토스테네스의 체
prime = [True] * 1100000
prime[1] = False
for i in range(2, int(1100000 ** 0.5) + 1):
if prime[i]: # i가 소수라면
for j in range(i * 2, 1100000, i):
prime[j] = False # 자신을 제외한 배수들을 지움
for i in range(n, 1100000):
if str(i) == str(i)[::-1] and prime[i]:
print(i)
break
팰린드롬인지 확인하는 것은 숫자를 문자열로 변환해서 리스트 슬라이싱을 이용하였다.
코드를 제출하니 99퍼에서 틀리길래 설마하고 아래와 같이 1을 처리해줬더니
prime[1] = False
통과했다...예외 처리를 잘하자...
'문제풀이 > 수학' 카테고리의 다른 글
[Python/파이썬] 백준 9655번 돌 게임 (0) | 2023.02.09 |
---|---|
[Python/파이썬] 백준 2748번 피보나치 수 2 (0) | 2023.02.09 |
[Python/파이썬] 백준 2960번 에라토스테네스의 체 (0) | 2023.02.06 |
[Python/파이썬] 백준 5347번 LCM (0) | 2023.02.06 |
[Python/파이썬] 백준 2581번 소수 (0) | 2023.02.06 |