import Foundation
let N = Int(readLine()!)!
var numbers = Array(0...1004000)
(numbers[0], numbers[1]) = (0, 0)
for number in stride(from: 2, through: Int(Double(numbers.count-1).squareRoot()), by: 1) {
if number == 0 {
continue
}
for index in stride(from: number + number, to: numbers.count, by: number) {
numbers[index] = 0
}
}
for i in N..<numbers.count {
if numbers[i] == 0 {
continue
}
let now = String(numbers[i])
if now == String(now.reversed()) {
print(now)
break
}
}
- N이 최대값(1,000,000)일 때의 정답이 포함된 적절한 범위를 고른 후 그 범위 안에 있는 소수들을 찾는다.
- N부터 배열의 끝까지 순회하며 소수이면서 팰린드롬인 수를 찾는다.