Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: wtpza
Problemset: ดีกค์เวิร์ด
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-13 11:30:43
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> prime;
bool isprime(int a){
if(a<=1)return false;
if(a%2==0)return false;
if(a==2)return true;
for(int i = 3 ; i*i <= a ;i+=2){
if(a%i==0)return false;
}
prime.push_back(a);
return true;
}
int permute(vector<int> z,vector<int> com,vector<int> usednum,vector<bool> usedint){
int counter = 0;
if(com.size() == m){
int toreal=0;
for(int x:com){
toreal*=10;
toreal+=x;
}
if(find(usednum.begin(),usednum.end(),toreal) != usednum.end()){
return 0;
}
else {
usednum.push_back(toreal);
if(find(prime.begin(),prime.end(),toreal) != prime.end()) return 1;
if(isprime(toreal))return 1;
return 0;
}
}
for(int i = 0 ; i < m;i++){
if(!usedint[i]){
com.push_back(z[i]);
usedint[i] = true;
counter+=permute(z,com,usednum,usedint);
usedint[i] = false;
com.pop_back();
}
}
return counter;
}
int main(){
cin >> n >> m;
prime.push_back(2);
for(int i = 0 ; i < n;i++){
string jj;
cin >> jj;
vector<int> wow;
vector<int> gg;
for(int j = 0 ; j < jj.length();j++){
int lol = jj[j]-'0';
wow.push_back(lol);
}
vector<bool> usedint(jj.length(),false);
vector<int>usednum;
cout << permute(wow,gg,usednum,usedint) << "\n";
}
}