Submission
Status:
PPPPPxxPxx
Subtask/Task Score:
60/100
Score: 60
User: iij
Problemset: การเรียงสับเปลี่ยน
Language: cpp
Time: 0.021 second
Submitted On: 2025-10-17 22:19:12
#include <bits/stdc++.h>
using namespace std;
bool isNotPrime[9999999];
constexpr unsigned maxN = 9000000;
int main() {
vector<int> ans;
int m, n;
cin >> m >> n;
isNotPrime[0] = isNotPrime[1] = 1;
for (unsigned i = 2; i*i <= maxN; i++) {
if (!isNotPrime[i]) {
for (unsigned j = i*i; j <= maxN; 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";
}