백준

백준 1747 소수&펠린드롬(Java)

Park DJ 2023. 2. 21. 19:28

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

 

1747번: 소수&팰린드롬

어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고,

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 에라토스테네스의 채를 활용하여 먼저 소수를 골라낸 후 소수중에서 팰린드롬수인지 아닌지를 판별하여 n보다 큰 소수중 가장 작은 팰린드롬수를 출력하면 되는 문제입니다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    
    boolean[] arr = new boolean[10000001];
    arr[0] = true;
    arr[1] = true;
    int n = sc.nextInt();
    
    for(int i = 2; i * i <= 10000000; i++) {
      for(int j = i * i; j <= 10000000; j+=i) arr[j] = true;
    }

    for(int i = n; i <= 10000000; i++) {
      if(arr[i] == false) {
        StringBuilder sb = new StringBuilder();
        sb.append(i);
        if(sb.toString().equals(sb.reverse().toString())) {
          System.out.print(sb);
          break;
        }
      }
    }

  }
}