Submission
Status:
PPPPP--P--
Score: 60
User: Nagornz
Problemset: การเรียงสับเปลี่ยน
Language: cpp
Time: 0.014 second
Submitted On: 2025-03-30 22:31:27
/*
TASK: permutation
LANG: C++
AUTHOR: Nagorn Phongphasura
CENTER: SUT
*/
#include <bits/stdc++.h>
#define int long long
using namespace std;
int m, n;
vector <bool> prime(1000005, true);
void checkprime(){
prime[0] = prime[1] = false;
for (int i = 2; i <= 1000000; i++) {
if (prime[i]) {
for (int j = i + i; j <= 1000000; j += i) {
prime[j] = false;
}
}
}
}
int32_t main(){
checkprime();
cin >> m >> n;
vector <int> a(n);
while (m--) {
string s;
cin >> s;
int cnt = 0;
for (int i = 0; i < n; i++) a[i] = s[i] - '0';
sort(a.begin(), a.end());
set <int> ans;
do {
int num = 0;
for (int i = 0; i < n; i++) {
num = num * 10 + a[i];
}
if (prime[num]) ans.insert(num);
} while(next_permutation(a.begin(), a.end()));
cout << ans.size() << "\n";
}
}