fork download
  1. #include <bits/stdc++.h>
  2. // #pragma GCC optimize("O3, unroll-loops")
  3. // #pragma GCC target("avx2,bmi,bmi2")
  4. #define fast \
  5.   ios::sync_with_stdio(false); \
  6.   cin.tie(nullptr); \
  7.   cout.tie(nullptr);
  8. #define fi first
  9. #define se second
  10. #define pr pair
  11. #define ll long long
  12. #define ull unsigned long long
  13. #define db double
  14. #define ln '\n'
  15. using namespace std;
  16. const string NAME = "BAI1";
  17.  
  18. /*-------------------------------------------------------------*/
  19. bool snt(ll n)
  20. {
  21. if (n == 2 || n == 3) return true;
  22. if (n < 3 || n % 2 == 0 || n % 3 == 0) return false;
  23. for (ll i = 5; i * i <= n; i += 6)
  24. if (n % i == 0 || n % (i + 2) == 0)
  25. return false;
  26.  
  27. return true;
  28. }
  29.  
  30. int main()
  31. {
  32. fast;
  33.  
  34. freopen((NAME + ".inp").c_str(), "r", stdin);
  35. freopen((NAME + ".out").c_str(), "w", stdout);
  36.  
  37. auto start = chrono::steady_clock::now();
  38.  
  39. string s;
  40. cin >> s;
  41.  
  42. sort(s.begin(), s.end());
  43.  
  44. ll c = 0;
  45. do{
  46. ll x = stoll(s);
  47.  
  48. if(snt(x)) c++;
  49.  
  50. } while(next_permutation(s.begin(), s.end()));
  51.  
  52. cout << c;
  53.  
  54. auto end = chrono::steady_clock::now();
  55. cerr << "h, Time = " << chrono::duration<double>(end - start).count() << " s\n";
  56. }
  57.  
Success #stdin #stdout #stderr 0.01s 5288KB
stdin
34
stdout
1
stderr
h, Time = 2.8931e-05 s