반응형
문제
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)
반응형
'Develop > 알고리즘' 카테고리의 다른 글
[백준/Python] Bronze III #10162 전자레인지 (0) | 2023.05.30 |
---|---|
[백준/Python] Silver III #1449 수리공 항승 (0) | 2023.05.30 |
[백준/Python] Silver I #24155 신입 사원 (0) | 2023.05.29 |
[백준/Python] Silver III #13305 주유소 (0) | 2023.05.29 |
[백준/Python] Silver V #1439 뒤집기 (0) | 2023.05.29 |
Comment