본문 바로가기

코딩테스트/Level1

뒤집은 소수

문제

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;
	}
	
}

'코딩테스트 > Level1' 카테고리의 다른 글

Anagram  (0) 2022.02.09
소수의 개수  (0) 2022.02.09
가장 많이 사용된 자릿수  (0) 2022.02.09
숫자의 총 개수  (0) 2022.02.09
자릿수의 합  (0) 2022.02.09