728x90
반응형
https://www.acmicpc.net/problem/1747
1747번: 소수&팰린드롬
어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고,
www.acmicpc.net
문제 해결
- n이상의 소수에서 찾는 것이므로 리스트의 원소 개수를 1,000,000(n의 최댓값)보다 커야한다. ($\times$ 10 함)
- 소수는 에라토스테네스체로 걸러낸다.
CODE
import sys
input = sys.stdin.readline
import math
n = int(input())
A = [0]*(10000001)
for i in range(2, len(A)):
A[i] = i
for i in range(2, int(math.sqrt(len(A))+1)):
if A[i] ==0:
continue
for j in range(i+i, len(A),i):
A[j] = 0
def isPalindrome(target): # 팰린드롬 수 판별 함수
temp = list(str(target))
s = 0
e = len(temp) - 1
while (s<e):
if temp[s] != temp[e]:
return False
s += 1
e -= 1
return True
i = n
while True:
if A[i] != 0:
result = A[i]
if (isPalindrome(result)):
print(result)
break
i += 1
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1850 최대공약수 (0) | 2023.02.24 |
---|---|
[python] 백준 11689 GCD(n, k) = 1 (0) | 2023.02.24 |
[python] 백준 1456 거의 소수 (0) | 2023.02.23 |
[python] 백준 1744 수 묶기 (0) | 2023.02.23 |
[python] 백준 1715 카드 정렬하기 (0) | 2023.02.23 |
댓글