알고리즘 풀이/백준

[1747] 백준 - 소수&팰린드롬(JAVA)

데롱디롱 2021. 10. 19. 01:41
728x90

 

 

[ 풀이 방법 ]

- N부터 충분히 큰 수 사이에서,
  소수이면서 팰린드롬인 숫자를 찾으면 출력하고 종료

 

 

- 소수 찾기
   => 에라토스테네스의 체 

 

 

- 팰린드롬
   => StringBuilder를 이용하여 문자열을 뒤집은 것과 같은지 확인

 

 

 

 

 

 

[ 전체 코드 ]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        for (int i = N; i < 999999999; i++) {
            if (isPrime(i) && isPalindrom(i)) {
                System.out.println(i);
                break;
            }
        }
    }

    private static boolean isPalindrom(int num) {
        StringBuilder sb = new StringBuilder(num + "");
        if (!sb.toString().equals(sb.reverse().toString()))
            return false;
        return true;
    }

    private static boolean isPrime(int num) {
        if (num == 1)
            return false;

        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0)
                return false;
        }
        return true;
    }
}
댓글수0