Submission

Status:

PPPPPxxPxx

Subtask/Task Score:

60/100

Score: 60

User: mzmvtbgf

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

Language: cpp

Time: 0.005 second

Submitted On: 2026-03-13 15:26:24

#include <bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;
vector<bool> prime;
void prime_init()
{
    for (int i = 2 ; i*i < t ; i++)
    {
        if (prime[i]) 
        {
            for (int j = i*i ; j < t ; j += i) prime[j] = 0;
        }
    }
    return;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> q >> n;
    t = pow(10, n) + 100;
    prime.resize(t, 1);
    prime[0] = 0;
    prime[1] = 0;
    prime_init();
    while (q--)
    {
        int ct = 0;
        string str;
        /*vector<int> nums(n);
        for (int i = 0 ; i < n ; i++)
        {
            char ch;
            cin >> ch;
            nums[i] = ch - '0';
        }*/
        cin >> str;
        sort(str.begin(), str.end());
        do
        {
            int now = stoi(str);
            if (prime[now]) ct++;
        } while (next_permutation(str.begin(), str.end()));
        cout << ct << "\n";
    }    
    return 0;
}