Submission
Status:
PPPPPxxPxx
Subtask/Task Score:
60/100
Score: 60
User: mantaggez
Problemset: การเรียงสับเปลี่ยน
Language: cpp
Time: 0.005 second
Submitted On: 2026-03-20 14:50:42
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll px = 1e6;
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;
}