어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.
어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.
첫째 줄에 N이 주어진다.
첫째 줄에 조건을 만족하는 수를 출력한다.
- 먼저 while 문을 이용해 N이 소수인지 아닌지 판별할 것이고
- 아니라면 N+1, 맞다면 팰린드드롬 수인지 확인한다
import sys
sys.stdin = open("input.txt","rt")
import math
def input():
return sys.stdin.readline().rstrip()
def isPrime(x):
for i in range(2, int(math.sqrt(x)+1)):
if x % i == 0:
return False
return True
def isPalindrome(x):
strX = str(x)
for j in range(len(strX)//2):
if strX[j] != strX[-j -1]:
return False
else:
return True
if __name__ == "__main__":
N = int(input())
if N == 1:
N = N+1
while(True):
if isPrime(N):
if isPalindrome(N):
break
N = N+1
print(N)
팰린드드롬 수라는게 있구나
주의해야 했던 것이 n이 1일 경우이다. 이걸 생각 안해서 2차 시도 까지 틀림..