Submission
Status:
PPPPPxxPxx
Subtask/Task Score:
60/100
Score: 60
User: PIP3_PP
Problemset: การเรียงสับเปลี่ยน
Language: cpp
Time: 0.007 second
Submitted On: 2026-03-13 11:28:06
#include<bits/stdc++.h>
using namespace std;
vector<bool> P(1000001,1);
void isPrime(){
P[0] = P[1] = 0;
for(int i = 2 ; i*i <= 1000000 ; i++){
if(P[i]){
for(int j = i*i ; j <= 1000000 ; j+=i){
P[j] = 0;
}
}
}
}
int permute(string &s, int l){
if(l == s.size()){
if(P[stoi(s)]){
return 1;
}
return 0;
}
int cnt = 0;
bool used[10] = {0};
for(int i = l ; i < s.size() ; i++){
if(used[s[i]-'0']) continue;
used[s[i] -'0'] = 1;
swap(s[i],s[l]);
cnt += permute(s,l+1);
swap(s[l],s[i]);
}
return cnt;
}
int main(){
int m,n;
string s;
cin >> m >> n;
isPrime();
for(int i = 0 ; i < m ; i++){
cin >> s;
cout << permute(s,0) << "\n";
}
return 0;
}