Submission

Status:

PPPPPxxPxx

Subtask/Task Score:

60/100

Score: 60

User: mantaggez

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

Language: cpp

Time: 0.019 second

Submitted On: 2026-03-20 14:51:53

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const ll px = 1e7;

ll n, m, ans;
bool prime[px + 5];
string s;

void solve()
{
    ans = 0;
    cin >> s;
    sort(s.begin(), s.end());

    ll prev = -1;
    do {
        ll val = stoll(s);
        if(prime[val] && val != prev) {
            ans++;
        }
        prev = val;
    } while(next_permutation(s.begin(), s.end()));
    // cout << '\n';
    cout << ans << '\n';
}

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> m >> n;
    memset(prime, true, sizeof(prime));
    prime[0] = prime[1] = false;
    for(ll i=2;i*i<=px;i++) {
        if(prime[i]) {
            for(ll j=i*i;j<=px;j+=i) {
                prime[j] = false;
            }
        }
    }

    while(m--) {
        solve();
    }

    return 0;
}