6. 뒤집은 소수
N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다.
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 100,000를 넘지 않는다.
첫 줄에 뒤집은 소수를 출력합니다. 출력순서는 입력된 순서대로 출력합니다.
===================================================
수를 뒤집어야 하므로 뒤집기 편한 String 형태로 값을 받아 뒤집어 배열에 저장한다. 그 다음 배열의 수를 하나씩 소수인지 판별하여 답을 구한다.
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public ArrayList<Integer> solution(int number,String[]array ) {
ArrayList<Integer> answer = new ArrayList<>();
int[] list = new int[array.length];
for(int i=0;i<array.length;i++) {
String tmp=new StringBuffer(array[i]).reverse().toString();
list[i]=Integer.parseInt(tmp);
}
for(int x: list) {
int count=0;
for(int i=2;i<x;i++)
if(x%i==0)count++;
if(count==0) if(x!=1) answer.add(x);
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
int number=scan.nextInt();
String [] array=new String[number];
for(int i=0;i<number;i++) {
array[i]=scan.next();
}
for(int x: main.solution(number,array))
System.out.print(x+" ");
}
}
1) 소수구하기