Submission

Status:
PPPPPxxPxx

Score: 60

User: Nagornz

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

Language: cpp

Time: 0.007 second

Submitted On: 2025-03-30 22:45:40

/*
TASK: permutation
LANG: C++
AUTHOR: Nagorn Phongphasura
CENTER: SUT
*/

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

int m, n;
vector <bool> prime(1000005, true);

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

int main(){
    checkprime();
    cin >> m >> n;
    while (m--) {
        int cnt = 0;
        string s;
        cin >> s;
        sort(s.begin(), s.end());
        int curr = 0;
        do {
            int num = 0;
            for (auto c : s) num = num * 10 + (c - '0');
            if (prime[num] && num != curr) cnt++, curr = num;
        } while(next_permutation(s.begin(), s.end()));
        cout << cnt << "\n";
    }
}