function isPrime (number){
if(isNaN(number) || number === 0 || number === 1)
return false;
for(let i = 2 ; i< number ; i++){
if(number% i === 0 )
return false;
}
return true;
}
function solution(numbers) {
var answer = [];
numbers = numbers.split('');
function exhaustiveSearch(numbers, arr){
if(numbers.length){
for(let i = 0 ; i < numbers.length ; i++){
let temp = [...numbers];
//해당 위치의 요소를 일단 제거 후
temp.splice(i,1);
// 현재 문자열 + 해당위치의 문자를 더한 것의 소수를 판별
if(isPrime(parseInt(arr+numbers[i]))){
answer.push(parseInt(arr+numbers[i]));
}
// 더한 요소 제거한 배열, 현재 문자열 + 해당위치의 문자를 다시 재귀로 호출
exhaustiveSearch(temp, arr+ numbers[i])
}
}
}
exhaustiveSearch(numbers,'')
// 답들중 중복되는 숫자들은 제거 후
answer =[...new Set(answer)]
//최종적으로 길이 반환
return answer.length;
}
\