응애개발자
article thumbnail
728x90

문제

https://www.acmicpc.net/problem/1990

 

접근 방법

  1. 문제에 나와있는대로 소수이면서 팰린드롬을 찾는 문제이다.
  2. 그러면 먼저 소수를 찾아서 배열을 만들어 주고, A ~ B까지 순환하면서 그 수가 소수인지, 만약 소수이면 팰린드롬 검사를 해줘서 맞으면 모두 저장한다.
  3. 그리고 마지막은 -1을 저장한다.

 

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    private static StringBuilder sb;
    private static BufferedReader br;
    private static StringTokenizer st;
    private static int A,B;
    private static boolean[] isPrime = new boolean[100000010];

    //소수 체크
    public static void primeCheck(){
        for(int i = 2 ; i * i <= 100000000 ; i++){
            if(isPrime[i]){
                for(int j = i*i ; j <= 100000000 ; j+=i){
                    isPrime[j] = false;
                }
            }
        }
    }

    //입력
    public static void input() throws Exception {
        br = new BufferedReader(new InputStreamReader(System.in));
        sb = new StringBuilder();

        Arrays.fill(isPrime,true);

        isPrime[0] = false;
        isPrime[1] = false;

        primeCheck();

        st = new StringTokenizer(br.readLine());
        A = Integer.parseInt(st.nextToken());
        B = Integer.parseInt(st.nextToken());

    }
    //펠린드롬 체크(sb.reverse() 대신 구현)
    public static boolean palindromeCheck(int i){
        int input = i;
        int reverseNum = 0;

        while (i != 0){
            int lastNum = i%10;
            reverseNum = reverseNum*10+lastNum;
            i/=10;
        }
        if(input == reverseNum){
            return true;
        }else{
            return false;
        }
    }

    //실행
    public static void process() {
        for(int i = A ; i <= B ; i++){
            if(isPrime[i] && palindromeCheck(i)){
                sb.append(i).append("\n");
            }
        }
        sb.append(-1).append("\n");
    }


    public static void main(String[] args) throws Exception {
        input();
        process();
        System.out.println(sb.toString());
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

profile

응애개발자

@Eungae-D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!