반응형
문제
어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.
어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다.
출력
첫째 줄에 조건을 만족하는 수를 출력한다.
풀이
import math
import sys
input = sys.stdin.readline
n = int(input())
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]
ans = 0
for i in range(n, 1000001):
if is_palindrome(i) and is_prime_num(i):
ans = i
break
if ans == 0: ans = 1003001
print(ans)
반응형
'Develop > 알고리즘' 카테고리의 다른 글
[백준/Python] Bronze V #25311 UCPC에서 가장 쉬운 문제 번호는? (0) | 2023.08.11 |
---|---|
[백준/Python] Gold V #17609 회문 (0) | 2023.08.11 |
[백준/Python] Silver I #1325 효율적인 해킹 (0) | 2023.08.10 |
[백준/Python] Silver II #10799 쇠막대기 (0) | 2023.08.10 |
[백준/Python] Silver II #11051 이항 계수 2 (0) | 2023.08.10 |
Comment