[BOJ] 1747. 소수&팰린드롬
15 Apr 2026
Reading time ~1 minute
풀이
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static Scanner sc=new Scanner(System.in);
static int N=sc.nextInt();
static int arr[];
static boolean notPrime[]=new boolean[1003002];
public static void main(String[] args) {
for (int i = 1; i <= 1003001; i++) {
for (int j = 2; j*j <= i; j++) {
if(i%j==0) {
notPrime[i]=true;
break;
}
}
}
notPrime[1]=true;
for (int i = N; i <= 1003001; i++) {
if(!notPrime[i] && isPel(intToArr(i))) {
System.out.println(i);
break;
}
}
}
public static boolean isPel(int arr[]) {
for (int i = 0; i < arr.length/2; i++) {
if(arr[i]!=arr[arr.length-1-i]) {
return false;
}
}
return true;
}
public static int[] intToArr(int num) {
int s=size(num);
arr=new int[s];
int cnt=s;
while(num/10!=0) {
arr[--cnt]=num%10;
num=num/10;
}
arr[--cnt]=num%10;
return arr;
}
public static int size(int num) {
int cnt=1;
while(num/10!=0) {
cnt++;
num=num/10;
}
return cnt;
}
}