본문 바로가기
Algorithm

[백준] 2023: 신기한 소수 (Java)

by 옥돔이와 연근이 2022. 10. 6.
728x90
반응형

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

 

2023번: 신기한 소수

수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수

www.acmicpc.net

package 백준;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

//신기한 소수
public class Main_2023 {
	static int n;
	static int[] pick;

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		n = Integer.parseInt(br.readLine());

		pick = new int[n];
		permutation(0, 0);
	}

	private static void permutation(int num, int cnt) {// cnt는 자리
		if (cnt == n) {
			System.out.println(num);
			return;
		}

		for (int i = 1; i <= 9; i++) {

			// 그 뭐시냐
			// 2333 이면 2 소수 23 소수 233소수 2333소수여야하니께 그거 체크
			if (prime(num * 10 + i)) {// 1의 경우 2 3 5 7 소수만 출력
				permutation(num * 10 + i, cnt + 1); // n이 되면 그때 만들어진 수를 출력함
			}
		}

	}

	private static boolean prime(int num) {
		if (num == 1)
			return false;
		int sqrt = (int) Math.sqrt(num);// 제곱근의 수로 판별 -> 시간초과 줄이기 위함 
		// 소수인지 판별
		for (int i = 2; i <= sqrt; i++) {
			if (num % i == 0) {
				return false;
			}
		}
		return true;

	}

}

 

 

728x90