본문 바로가기
JAVA/백준

[Java] 백준 1747 소수&팰린드롬 - 소수 구하기(3)

by 푸_푸 2022. 11. 21.
728x90

백준 1747 소수&팰린드롬
문제

어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.

어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다.

출력

첫째 줄에 조건을 만족하는 수를 출력한다.


제출

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] A = new int[10000001];
		for (int i = 2; i < A.length; i++) {
			A[i] = i;
		}
		for (int i = 2; i < Math.sqrt(A.length); i++) {
			if (A[i] == 0) {
				continue;
			}
			for (int j = i + i; j < A.length; j = j + i) {
				A[j] = 0;
			}
		}
		int i = N;
		while (true) {
			if (A[i] != 0) {
				int result = A[i];
				if (isPalindrome(result)) {
					System.out.println(result);
					break;
				}
			}
			i++;
		}
	}
	private static boolean isPalindrome(int target)
	{
		char temp[] = String.valueOf(target).toCharArray();
		int s = 0;
		int e = temp.length -1;
		while (s < e) {
			if (temp[s] != temp[e])
				return false;
			s++;
			e--;
		}
		return true;
	}
}

예제

31

결과

백준 1747 소수&팰린드롬

 

 

1747번: 소수&팰린드롬

어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고,

www.acmicpc.net

 

728x90

댓글