Submission
Status:
PPPPPxxPxx
Subtask/Task Score:
60/100
Score: 60
User: iij
Problemset: การเรียงสับเปลี่ยน
Language: cpp
Time: 0.005 second
Submitted On: 2025-10-17 19:58:18
#include <bits/stdc++.h>
using namespace std;
bool isNotPrime[10000002];
int main() {
vector<int> ans;
int m, n;
cin >> m >> n;
unsigned maxN = stol(string(n, '9'));
for (auto i = 2; i <= maxN+1; i++) {
if (!isNotPrime[i]) {
for (auto j = i*i; j <= maxN+1; j+=i) {
isNotPrime[j] = 1;
}
}
}
while(m--) {
unsigned c = 0;
string s;
cin >> s;
sort(s.begin(), s.end());
do if (!isNotPrime[stoi(s)]) c++;
while (next_permutation(s.begin(), s.end()));
ans.emplace_back(c);
}
for (auto i : ans) cout << i << "\n";
}