Post

Array_숫자 뒤집고 소수인지 판별하기

✅ n개의 자연수가 입력되면 그 자연수들을 뒤집는다. 이후 그 뒤집은 자연수가 소수인지 판별하여 소수이면 출력한다.

예를 들어 32를 뒤집으면 23이고 23은 소수이므로 출력
190은 뒤집으면 091이므로 91이 된다.
첫 자리부터 연속된 0은 무시한다.
1은 소수가 아니다.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Main {
    public boolean isPrime(int n){
        if(n==1) return false;
        for(int j=2; j<n; j++){
            if(n % j ==0 ) return false;
        }
        return true;
    }
    public ArrayList<Integer> solution(int n, int[] intArr){

        ArrayList<Integer> answer = new ArrayList<>();
    for(int i=0; i<n; i++){
        int indexInt= intArr[i];
        int remain;
        int reverse=0;
        while(indexInt > 0){
            remain= indexInt%10;
            reverse= reverse*10 + remain;
            indexInt = indexInt/10;
        }
        intArr[i] = reverse;
        if(isPrime(intArr[i])) answer.add(intArr[i]);
    }


    return answer;

}
    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        int[] intArr = new int[n];
        for(int i=0; i<n; i++){
            intArr[i]= sc.nextInt();
        }
        for(int x: T.solution(n, intArr)){
            System.out.print(x + " ");
        }
    }
}



//⭐️input:
//9
//32 55 62 20 250 370 200 30 100
//⭐️output:
//23 2 73 2 3

🔵 ThingsILearned

✔️ 함수를 새로 빼내어도 괜찮구나~

소수 구하는 함수를 위에 새로 만들었다.

🟢 내가 풀어본 방법

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
31
32
33
34
35
36
37
38
39
class Main {
    public String solution(int n, int[] intArr){
    String answer = " ";
    int[] intPrimeArray= new int[n];
    for(int i=0; i<n; i++){
        int indexInt= intArr[i];
        int remain;
        int reverse=0;
        while(indexInt > 0){
            remain= indexInt%10;
            reverse= reverse*10 + remain;
            indexInt = indexInt/10;
        }
        intPrimeArray[i] = reverse;
        int flag= 0;
        if(intPrimeArray[i]==1) flag=1;
        for(int j=2; j<intPrimeArray[i]; j++){
            if(intPrimeArray[i] % j ==0 ) flag=1;
        }
        if(flag==0) answer += intPrimeArray[i] + " ";

    }

    return answer;

}
    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        int[] intArr = new int[n];
        for(int i=0; i<n; i++){
            intArr[i]= sc.nextInt();
        }
        System.out.println(T.solution(n, intArr));
    }
}


This post is licensed under CC BY 4.0 by the author.