#include <string>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
bool eratestones(int num) {
if (num < 2) return false;
int a = (int)sqrt(num);
for (int i = 2; i <= a; i++)
if (num % i == 0) return false;
return true;
}
int solution(string numbers) {
int answer = 0;
vector<char> v; // 종이 조각의 각 숫자 저장
vector<int> nums; // 종이 조각으로 만들 수 있는 모든 수 저장
// 퍼뮤테이션을 쓸려면 오름차순
for (int i = 0; i < numbers.size(); i++)
v.push_back(numbers[i]);
sort(v.begin(), v.end());
do { //"17"
string temp = ""; // 만들 수 있는 모든 숫자 nums에 저장
for (int i = 0; i < v.size(); i++) {
temp.push_back(v[i]); //first loop 1 7 second loop 7 1
nums.push_back(stoi(temp)); //first loop 1 17 second loop 7 71
}
} while (next_permutation(v.begin(), v.end()));// 7 1 로 순서 변경
// 중복 값 삭제
sort(nums.begin(), nums.end());
nums.erase(unique(nums.begin(), nums.end()), nums.end());
for (int i = 0; i < nums.size(); i++) // 소수일 경우 answer++
if (eratestones(nums[i]))
answer++;
return answer;
}