ALGORITHM

[JAVA] 알고리즘 : 배열 - 뒤집은 소수

연듀 2022. 6. 27. 11:47
import java.util.*;

public class Main{

    public boolean isPrime(int num){
        if(num==1) return false; // 1은 무조건 소수가 아님
        for(int i=2; i<num; i++){
            if(num % i==0) return false; // 약수가 존재하면 소수가 아님
        }
        return true;

    }
    public ArrayList<Integer> solution(int n, int[] arr){
        ArrayList<Integer> answer = new ArrayList<>();

        // 자연수 뒤집기
        for(int i=0; i<n; i++){
            int tmp=arr[i];
            int res=0;
            while(tmp>0){
                int t=tmp%10;
                res=res*10+t;
                tmp=tmp/10;
            }
            if(isPrime(res)) answer.add(res);

        }
        return answer;
    }
    public static void main(String[] args) {
        Main T=new Main();
        Scanner kb=new Scanner(System.in);
        int n = kb.nextInt();
        int[] arr = new int[n];

        for(int i=0; i<n; i++){
            arr[i]=kb.nextInt();
        }
        for(int x : T.solution(n, arr)){
            System.out.print(x+ " ");
        }
    }
}