#include <iostream>
#include <vector>
#include <map>
using namespace std;
__int128 power(__int128 A, __int128 N, __int128 M) {
__int128 ret = 1; A = A % M;
while (N > 0) {
if (N & 1) ret = ret * A % M;
N >>= 1;
A = A * A % M;
}
return ret;
}
bool check(__int128 A, __int128 s, __int128 d, __int128 N) {
if (N == A) return true;
__int128 p = power(A, d, N);
if (p == 1) return true;
for(; s > 0; s--) {
if (p == N - 1) return true;
p = p * p % N;
}
return false;
}
// miller test
bool prime(__int128 x) {
if (x <= 1) return false;
if (x % 2 == 0) return x == 2;
if (x % 3 == 0) return x == 3;
__int128 d = x - 1, s = 0;
while ((d & 1) == 0) {
s++;
d >>= 1;
}
for(__int128 i: {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37})
if (!check(i, s, d, x)) return false;
return true;
}
vector<int> a;
map<int, bool> m;
int calc(int cnt, int num, int mark) {
// leading by zero
if (cnt != 0 && num == 0) return 0;
if (cnt >= a.size()) {
if (m[num]) return 0;
m[num] = 1;
bool r = prime(num);
// if (r) cout << num << " ";
return r;
}
int res = 0;
for (int i = 0; i < a.size(); ++i)
if (((mark >> i) & 1) == 0) res += calc(cnt + 1, num * 10 + a[i], mark ^ (1 << i));
return res;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
string s;
cin >> s;
for (char c: s)
if ('0' <= c && c <= '9') a.emplace_back(c - '0');
cout << calc(0, 0, 0);
}
Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.
Nguồn : Wikipedia - Bách khoa toàn thưLớp 7 - Năm thứ hai ở cấp trung học cơ sở, một cuồng quay mới lại đến vẫn bước tiếp trên đường đời học sinh. Học tập vẫn là nhiệm vụ chính!
Nguồn : ADMIN :))Copyright © 2021 HOCTAP247