문제
N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다.
입력 설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다.
각 자연수의 크기는 100,000를 넘지 않는다.
출력 설명
첫 줄에 뒤집은 소수를 출력합니다. 출력순서는 입력된 순서대로 출력합니다.
입력 예제
5
32 55 62 3700 250
출력 예제
23 73
답
public class problem14 {
public static void main(String[] args) {
int[] input = {32, 55, 62, 3700, 250};
for(int i=0; i<input.length; i++) {
int rev = reverse(input[i]);
if(isPrime(rev))
System.out.println(rev);
}
}
public static int reverse(int x) {
int result = 0;
while(x>0) {
int a = x%10;
result = result*10+a;
x /= 10;
}
return result;
}
public static boolean isPrime(int x) {
for(int i = 2; i<x; i++) {
if(x%i==0)
return false;
}
return true;
}
}