Submission

Status:

xxxxxxxxxx

Subtask/Task Score:

0/100

Score: 0

User: Kx

Problemset: ทางเชื่อม

Language: cpp

Time: 0.004 second

Submitted On: 2026-03-18 14:38:36

#include <bits/stdc++.h>
using namespace std;

int m, n;

int main() {
    cin >> m >> n;
    int mx = 1;
    while(n--) mx *= 10;

    vector<bool> sieve(mx + 4, true);
    sieve[0] = sieve[1] = false;

    for(int i = 2; i <= mx; ++i) {
        if(sieve[i]) {
            for(int j = i + i; j <= mx; j += i) {
                sieve[j] = false;
            }
        }
    }


    for(int i = 0; i < m; ++i) {
        string s; cin >> s;
        sort(s.begin(), s.end());
        int res = 0;

        do {
            if(sieve[stoi(s)]) res++;
        } while(next_permutation(s.begin(), s.end()));
        cout << res << '\n';
    }

    return 0;
}