본문 바로가기
Develop/알고리즘

[백준/Python] Gold V #1990 소수인팰린드롬

by favorcat 2023. 5. 29.
반응형
 

1990번: 소수인팰린드롬

151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다. 팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되

www.acmicpc.net

문제

151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다. 팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되고 이 두 수가 다르기 때문에 팰린드롬이 아니다. 두 정수 a, b가 주어졌을 때, a이상 b이하인 소수인 팰린드롬을 모두 구하는 프로그램을 작성하시오.

입력

입력은 첫째 줄에 공백으로 구분된 두 자연수 a, b가 주어진다. 단 5 ≤ a < b ≤ 100,000,000 이다.

출력

첫째 줄부터 차례로 증가하는 순서대로 한 줄에 한개씩 소수인 팰린드롬을 출력한다. 마지막 줄에는 -1을 출력한다.

풀이

import sys
import math
input = sys.stdin.readline
a, b = map(int, input().split())

if b > 10000000:
  b = 10000000

def is_prime_num(n):
  if n in [0, 1]:
      return False
  for i in range(2, int(math.sqrt(n))+1):
      if n % i == 0:
          return False
  return True

def is_palindrome(n):
  return str(n) == str(n)[::-1]

for i in range(a, b+1):
  if is_palindrome(i):
    if is_prime_num(i): print(i)
print(-1)

 

반응형

Comment