import java.util.HashSet;
class Solution {
static HashSet<Integer> primes;
static boolean[] visited;
static int N;
public int solution(String numbers) {
N = numbers.length();
primes = new HashSet<>();
visited = new boolean[N];
makeNumber("",numbers);
return primes.size();
}
static void makeNumber(String s,String numbers){
if(s.length()>N) return;
if(s.length()!=0){
int num = Integer.parseInt(s);
if(isPrime(num)) primes.add(num);
}
for(int i=0; i<N; i++){
if(visited[i]==false){
visited[i]=true;
makeNumber(s+numbers.charAt(i),numbers);
visited[i]=false;
}
}
}
static boolean isPrime(int n){
if(n<=1) return false;
for(int i=2; i<=Math.sqrt(n); i++){
if(n%i==0) return false;
}
return true;
}
}