import java.util.*;
class Solution {
static StringBuilder sb = new StringBuilder();
static HashSet<Integer> s = new HashSet<>();
static String str;
static int[] arr = new int[10];
static boolean[] visit = new boolean[10];
static int count;
public int solution(String numbers) {
int answer = 0;
str = numbers+"";
//자릿수 개수 ++
for(int i = 1; i<=numbers.length(); i++){
makePrime(0, i);
};
return s.size();
}
public static void makePrime(int N, int limit){ // 현재 자릿수, 제한할 자릿수.
if(limit == N){ // 현재 자리수가 제한된 자릿수와 같아지면 종료.
String sumstr = "";
for(int j = 0; j<limit; j++)
sumstr += arr[j]+"";
int primeNumber = Integer.parseInt(sumstr);
if(primeNumber < 2)
return;
for(int k = 2; k<=Math.sqrt(primeNumber); k++){
if(primeNumber % k ==0)
return;
}
s.add(primeNumber);
return;
}
for(int i = 0; i<str.length(); i++){
if(visit[i] == false){
visit[i] = true;
arr[N] = str.charAt(i) - '0';
makePrime(N + 1, limit);
visit[i] = false;
}
}
}
}