티스토리 뷰

반응형

 

문제

N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요.

예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다.

첫 자리부터의 연속된 0은 무시한다.

 

입력

첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다.

각 자연수의 크기는 100,000를 넘지 않는다.

 

출력

첫 줄에 뒤집은 소수를 출력합니다. 출력순서는 입력된 순서대로 출력합니다.

 

 

 

예시 입력

9
32 55 62 20 250 370 200 30 100

예시 출력

23 2 73 2 3

 

 

 

 

 

문제 풀이

 

[첫번째 풀이]

import java.util.Scanner;

public class Main {
    public void solution(int num) {
        if (num > 1) {
            boolean d = true;
            for (int j=2; j<num; j++) {
                if (num % j == 0) {
                    d = false;
                    break;
                }
            }
            if (d) System.out.print(num + " ");
        }
    }

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int count = scanner.nextInt();

        for (int i=0; i<count; i++) {
            StringBuilder sb = new StringBuilder(scanner.next());
            int num = Integer.parseInt(sb.reverse().toString());

            Main main = new Main();
            main.solution(num);
        }
    }
}

(Time 166ms / Memory 27MB)

 

 

 

- 최대한 적은 for 문을 이용해서 풀고자 했다.

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함