Submission

Status:

PPPPP--P--

Subtask/Task Score:

60/100

Score: 60

User: muekwakungaroo

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

Language: cpp

Time: 0.047 second

Submitted On: 2026-03-05 10:31:53

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

void solve(){

}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m;
    cin>>m>>n;
    int ar[n];
    char ch;
    int s=pow(10,n);
    vector<bool> isprime(s,true);
    isprime[1]=false;
    isprime[0]=false;
    for(int i=2;i<=s/i;i++){
        for(int j=i*i;j<s;j+=i){
            if(isprime[j]==true){
                isprime[j]=false;
            }
        }
    }
    while(m--){
        for(int i=0;i<n;i++){
            cin>>ch;
            ar[i]=ch-'0';
        }
        sort(ar,ar+n);
        int sum=0;
        int cnt=0;
        do{
            sum=0;
            for(int i=0;i<n;i++){
                sum+=(ar[i]*pow(10,n-i-1));
            }
            if(sum>=0 and sum<pow(10,n) and isprime[sum]){
                cnt++;
                // cout<<sum<<' ';
            }
            // cout<<sum<<' ';
        }while(next_permutation(ar,ar+n));
        cout<<cnt<<'\n';
        
    for(int i=0;i<1e5;i++){
        cnt++;
    }
    }
    return 0;
}