Submission
Status:
TTTTTTTTTT
Subtask/Task Score:
0/100
Score: 0
User: muekwakungaroo
Problemset: การเรียงสับเปลี่ยน
Language: cpp
Time: 1.096 second
Submitted On: 2026-03-05 11:21:20
/*
TASK: permutation
LANG: C++
AUTHOR: YourName YourLastName
CENTER: SUT
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,m;
cin>>m>>n;
char ch;
int mul[n];
mul[n-1]=1;
for(int i=n-2;i>=0;i--){
mul[i]=mul[i+1]*10;
}
int s=mul[0]*10;
vector<bool> isprime(s,true);
isprime[1]=false;
isprime[0]=false;
for(int i=2;i<=s/i;i++){
for(int j=i*i;j<s;j+=i){
if(isprime[j]==true){
isprime[j]=false;
}
}
}
vector<int> ar;
while(m--){
string sss;
ar.clear();
cin>>sss;
bool chk=false;
for(int i=0;i<sss.size();i++){
ar.emplace_back(sss[i]-'0');
if(sss[i]-'0'<0) chk=true;
}
if(chk=true){
for(int i=0;i>-1;i++){
}
}
sort(ar.begin(),ar.end());
int sum=0;
int cnt=0;
do{
sum=0;
string ss;
for(auto&i:ar){
ss=ss+to_string(i);
}
sum=stoi(ss);
if(sum>=0 and isprime[sum]){
cnt++;
}
}while(next_permutation(ar.begin(),ar.end()));
cout<<cnt<<'\n';
}
return 0;
}