Submission

Status:

PPPPPxxPxx

Subtask/Task Score:

60/100

Score: 60

User: NANO..

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

Language: cpp

Time: 0.005 second

Submitted On: 2026-10-15 22:08:34

#include <bits/stdc++.h>
using namespace std;
const int N=1e6;
bool prime[N+1];
// vector<bool> prime(true,N);

void sieve(){
     prime[0]=false;
     prime[1]=false;
     for (int i = 2; i*i <= N; i++)
     {
          if(prime[i]){
               for (int j = i*i; j <= N; j+=i)
               {
                    prime[j]=false;
               }
          }
     }
     
}

int main()
{
     ios::sync_with_stdio(0);cin.tie(0);
     memset(prime,true,sizeof(prime));
     sieve();
     // for (int i = 0; i < 200; i++)
     // {
     //      if(prime[i]) cout << i << " ";
          // cout << i << " : " << prime[i] << '\n';
     // }
     // cout << 'A';
     // return 0;
     int n,m;
     
     cin >> n >> m;
     vector<string> v(n);
     for(auto& i:v) cin >> i;
     for(auto i:v){
          int cnt=0;
          string curr=i;
          sort(curr.begin(),curr.end());
          do
          {
               int curr_num=stoi(curr);
               if(prime[curr_num])cnt++;
          } while (next_permutation(curr.begin(),curr.end()));
          cout << cnt << '\n';
     }
}
/*
a*b^c+d*e^f
2
1 0
2 0
*/