본문 바로가기
BaekJoon/Silver

[BOJ/JAVA] 백준 1747 : 소수&팰린드롬 (자바)

by HoonSikE 2022. 5. 4.
반응형
SMALL
문제 정보
  문제명   - 소수&팰린드롬
  난이도   - 실버 I
문제 번호 - 1747번

문제 링크

BOJ_S1_1747_소수와_팰린드롬

 

1747번: 소수&팰린드롬

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

www.acmicpc.net


문제
어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.
어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.

입력
첫째 줄에 N이 주어진다.

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

예제 입력/출력예제 출력
예제 입력 예제 출력
31 101

알고리즘 분류
● 수학
● 브루트포스 알고리즘
● 정수론
● 소수 판정
● 에라토스테네스의 체


소스코드
package Lv2_Silver;

import java.util.Arrays;
import java.util.Scanner;
/**
 * @author HanHoon
 * @category 수학, 브루트포스 알고리즘, 정수론, 소수 판정, 에라토스테네스의 체
 * https://www.acmicpc.net/problem/1747
 */
public class BOJ_S1_1747_소수와_팰린드롬 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		// 배열을 선언하고 모든 값을 true라고 한다.
		boolean[] arr = new boolean[1005000];
		Arrays.fill(arr, true);
		// 0과 1은 소수가 아니다
		arr[0] = false;
		arr[1] = false;
		// 2부터 시작
		for (int i = 2; i < arr.length; i++) {
			// treu라면 이 값은 소수가 아니므로 확인할 필요가 없다.
			if(!arr[i]) continue;
			// 이 값의 배수는 모두 소수가 아니다.
			for (int j = i+i; j < arr.length; j += i) {
				arr[j] = false;
			}
		}

		// N보다 큰 첫번째 소수
		for (int i = N; i < arr.length; i++) {
			if(arr[i]) {
				// 그중에서 펠린드롬인 수를 출력
				String tmp = i+"";
				boolean flag = true;
				for (int j = 0; j < tmp.length()/2; j++)
					if(tmp.charAt(j) != tmp.charAt(tmp.length()-1-j))
						flag = false;
				if(flag) {
					System.out.println(i);
					break;
				}
			}
		}
		sc.close();
	}
}

 


BaekJoon List
 

BaekJoon List

BOJ Start!! ● [BOJ] 백준 회원가입, 시작하는 법 ● [BOJ] 등급(티어) 및 Solved.AC 적용 ● [BOJ/JAVA] 백준 소스코드 제출 시 유의사항(자바) Bronze ● Bronze V  - ● Bronze IV  - ● Bronze III  -..

han-hoon.tistory.com


  

기회는 준비된 자에게 찾아온다.

 


 

반응형
LIST

댓글