성장일기

[python] 백준 1990 - 소수인팰린드롬 본문

알고리즘 문제

[python] 백준 1990 - 소수인팰린드롬

김몽몽 2022. 1. 20. 16:40

https://www.acmicpc.net/problem/1990

 

1990번: 소수인팰린드롬

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

www.acmicpc.net

Q> 문제는 간단하다.

시작숫자, 끝 숫자가 주어지고 그 사이의 소수이면서 팰린드롬인 수를 구하면 된다

 

🧨1. 팰린드롬인 수부터 구하자

2. 10,000,000 이상인 팰린드롬은 없다

3. 그럼에도 시간초과나서 pypy3로 풀었다😥😥

 

import sys
input=sys.stdin.readline

def pal(word):  #팰린드롬 판정
    if len(word)<2:
        return True
    if word[0] != word[-1]:
        return False
    return pal(word[1:-1])

def prime(number):  #소수판정
    for i in range(2, int(number**0.5)+1):
        if number % i ==0:
            return False
    return True

start, end = map(int,input().split())

if end > 10000000:  # 천만 넘는 팰린드롬 없음
    end = 10000000
    
li=[]
for i in range(start,end+1):
    i=str(i)
    if pal(i)==True:  # 팰린드롬이면 리스트에 넣기
        li.append(int(i))

for num in li:
    if prime(num)==True:  # 리스트 중 소수이면 출력
        print(num)

print(-1)

'알고리즘 문제' 카테고리의 다른 글

[python] 백준 1374 - 강의실  (0) 2022.01.21
골드 5 🎉  (0) 2022.01.20
[python] 백준 8892 - 팰린드롬  (0) 2022.01.20
[python] 백준 19598 - 최소 회의실 개수  (0) 2022.01.20
[python] 백준 13975 - 파일 합치기 3  (0) 2022.01.20