Submission

Status:

PPPPPxxPxx

Subtask/Task Score:

60/100

Score: 60

User: anak

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

Language: cpp

Time: 0.007 second

Submitted On: 2026-04-01 15:45:29

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(x) (x).begin(), (x).end()

vector<bool> isPrime(1000000,true);
void sieve() {
    isPrime[1] = false;
    for(int i=2;i<1000000;i++) {
        if(isPrime[i]) {
            for(int j=2*i;j<1000000;j+=i) {
                isPrime[j] = false;
            }
        }
    }
}
int cnt_prime(string s) {
    sort(all(s));
    int ans = 0;
    do {
        int num = stoi(s);
        if(isPrime[num]) ans++;
    } while(next_permutation(all(s)));
    return ans;
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n,m;
    cin >> m >> n;
    sieve();
    for(int i=0;i<m;i++) {
        string s;
        cin >> s;
        cout << cnt_prime(s) << '\n';
    }
}