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:52:51
#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[0] = false;
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';
}
}