Submission
Status:
PPPPPxxPxx
Score: 60
User: Nagornz
Problemset: การเรียงสับเปลี่ยน
Language: cpp
Time: 0.009 second
Submitted On: 2025-03-30 22:43:47
/*
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 <= 1000000; i++) {
if (prime[i]) {
for (int j = i + i; j <= 1000000; j += i) {
prime[j] = false;
}
}
}
}
int main(){
checkprime();
cin >> m >> n;
while (m--) {
string s;
cin >> s;
sort(s.begin(), s.end());
int cnt = 0;
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";
}
}