a 이상 b 이하의 수를 반복문을 사용해 돌면서
문자열과 뒤집은 문자열이 같고 , 소수이면 출력했다. 그런데 이 방법을 이용하면 시간초과가 난다, 여기서 하나 더 추가해야 할 것은
문자열의 길이가 짝수이면 11 말고는 모두 소수가 될 수 없다 .
그래서 이 조건을 추가해주면 된다
import sys
import math
input= sys.stdin.readline
a, b = map(int, input().split())
# 소수찾기
def find_prime(x):
if x == 0 or x == 1:
return False
for i in range(2, int(math.sqrt(x))+1):
if x % i == 0:
return False
return True
for i in range(a, b+1):
# 11은 소수가 맞음
if i == 11:
print(i)
# 길이가 홀수고 뒤집은 문자열과 같다. 소수이면 출력
else:
if len(str(i)) % 2 != 0 and str(i) == str(i)[::-1] :
if find_prime(i):
print(i)
# 맨 마지막줄에는 -1 출력
print(-1)