Submission

Status:

xxxxxxxxxx

Subtask/Task Score:

0/100

Score: 0

User: iij

Problemset: การเรียงสับเปลี่ยน

Language: cpp

Time: 0.018 second

Submitted On: 2025-10-16 20:39:15

#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'));
    unsigned maxN = 10000001;

    for (auto i = 2; i <= maxN; i++) {
        if (!isNotPrime[i]) {
            for (auto 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";
}