import java.util.*;
class Solution {
public boolean[] visited;
public String[] arr;
public int answer = 0;
public Set<Integer> set = new HashSet<>();
public int solution(String numbers) {
arr = numbers.split("");
visited = new boolean[arr.length];
for(int i=1; i<=arr.length; i++) { recur(0, i, ""); }
return answer;
}
public void recur(int index, int len, String s) {
if(index==len) {
int n = Integer.parseInt(s);
if(isPrime(n) && !set.contains(n)) {
set.add(n);
answer++;
}
return;
}
for(int i=0; i<arr.length; i++) {
if(visited[i]) { continue; }
visited[i] = true;
recur(index+1, len, s+arr[i]);
visited[i] = false;
}
}
public boolean isPrime(int n) {
if(n==0 || n==1) { return false; }
for(int i=2; i*i<=n; i++) {
if(n%i==0) { return false; }
}
return true;
}
}