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