반응형
문제
https://www.acmicpc.net/problem/1747
어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.
어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다.
출력
첫째 줄에 조건을 만족하는 수를 출력한다.
코드
import sys, math
input=sys.stdin.readline
visited=[False,False]+ [True]*(1005000)
for i in range(2,int(math.sqrt(1005001))+1):
if visited[i]==True:
for j in range(2*i,1005001, i):
visited[j]=False
def check(n):
tmp=str(n)
tmp1=tmp[::-1]
if tmp==tmp1: return 1
else: return 0
n=int(input())
for i in range(n,1005001):
if check(i)==1 and visited[i]==True:
print(i)
break
문제 해결
에라토스테네스의 체와 문자열 일치를 섞은 문제이다. 다만 이문제에서 주의 해야할 점은 1 ≤ N ≤ 1,000,000이다.
문제 조건은 N보다 크거나 같고, 소수이면서 팰린드롬인 수를 찾는 것이기 때문에 에라토스테네스의 체를 구할때 1000000보다 큰 수까지 체크해 줘야한다.(1003001가 다음 소수이면서 팰린드롬인수)
반응형
'Problem Solving > 백준' 카테고리의 다른 글
[백준] 1850번: 최대공약수 - [Python/파이썬] (0) | 2023.04.13 |
---|---|
[백준] 1783번: 병든 나이트 - [Python/파이썬] (0) | 2023.04.13 |
[백준] 1744번: 수 묶기 - [Python/파이썬] (0) | 2023.04.13 |
[백준] 1725번: 히스토그램 - [Python/파이썬] (0) | 2023.04.13 |
[백준] 1707번: 이분그래프 - [Python/파이썬] (0) | 2023.04.13 |