Submission

Status:

xxxxxxxxxx

Subtask/Task Score:

0/100

Score: 0

User: NANO..

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-15 21:27:11

#include <bits/stdc++.h>
using namespace std;
const int N=1e5;
bool prime[N];

void sieve(){
     prime[0]=false;
     prime[1]=false;
     for (int i = 2; 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 < 100; i++)
     // {
     //      if(prime[i]) cout << i << " ";
     //      // cout << i << " : " << prime[i] << '\n';
     // }
     
     // 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
*/