성장일기
[python] 백준 1990 - 소수인팰린드롬 본문
https://www.acmicpc.net/problem/1990
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 |